- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对哪个 dim
通常指的是 Tensorflow 中的哪个实际维度感到困惑,但具体来说,在使用 tf.metrics.mean_cosine_distance 时
给定
x = [
[1, 2, 3, 4, 5],
[0, 2, 3, 4, 5],
]
我想按列计算距离。也就是说,哪个维度解析为(伪代码):
mean([
cosine_distance(x[0][0], x[1][0]),
cosine_distance(x[0][1], x[1][1]),
cosine_distance(x[0][2], x[1][2]),
cosine_distance(x[0][3], x[1][3]),
cosine_distance(x[0][4], x[1][4]),
])
最佳答案
它沿着 dim 0
为您的输入 x
。一旦您将输入 x
构建为 numpy 数组,就可以很直观地看到这一点。
In [49]: x_arr = np.array(x, dtype=np.float32)
In [50]: x_arr
Out[50]:
array([[ 1., 2., 3., 4., 5.],
[ 0., 2., 3., 4., 5.]], dtype=float32)
# compute (mean) cosine distance between `x[0]` & `x[1]`
# where `x[0]` can be considered as `labels`
# while `x[1]` can be considered as `predictions`
In [51]: cosine_dist_axis0 = tf.metrics.mean_cosine_distance(x_arr[0], x_arr[1], 0)
这个 dim
对应于 NumPy 术语中的名称 axis
。例如,一个简单的 sum
操作可以沿着 axis 0
完成,例如:
In [52]: x_arr
Out[52]:
array([[ 1., 2., 3., 4., 5.],
[ 0., 2., 3., 4., 5.]], dtype=float32)
In [53]: np.sum(x_arr, axis=0)
Out[53]: array([ 1., 4., 6., 8., 10.], dtype=float32)
当您计算 tf.metrics.mean_cosine_distance
时,您实际上是在计算向量 labels
和 predictions
沿 dim 0 之间的余弦距离
(然后取平均值)如果你的输入是形状 (n, )
其中 n
是每个向量的长度(即标签中的条目数/预测)
但是,如果您将 labels
和 predictions
作为列向量 传递,则 tf.metrics.mean_cosine_distance
必须沿 dim 1
示例:
如果你的输入label
和prediction
是列向量,
# if your `label` is a column vector
In [66]: (x_arr[0])[:, None]
Out[66]:
array([[ 1.],
[ 2.],
[ 3.],
[ 4.],
[ 5.]], dtype=float32)
# if your `prediction` is a column vector
In [67]: (x_arr[1])[:, None]
Out[67]:
array([[ 0.],
[ 2.],
[ 3.],
[ 4.],
[ 5.]], dtype=float32)
然后,tf.metrics.mean_cosine_distance
必须沿 dim 1
# inputs
In [68]: labels = (x_arr[0])[:, None]
In [69]: predictions = (x_arr[1])[:, None]
# compute mean cosine distance between them
In [70]: cosine_dist_dim1 = tf.metrics.mean_cosine_distance(labels, predictions, 1)
这个 tf.metrics.mean_cosine_distance
或多或少与 scipy.spatial.distance.cosine
做同样的事情,但它也采用 mean
。
对于您的示例案例:
In [77]: x
Out[77]: [[1, 2, 3, 4, 5], [0, 2, 3, 4, 5]]
In [78]: import scipy
In [79]: scipy.spatial.distance.cosine(x[0], x[1])
Out[79]: 0.009132
关于python - 在 tf.metrics.mean_cosine_distance 上使用哪个 dim?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48529169/
VBA 的奇怪行为: 这会在第 3 行出现错误 94“非法使用 Null”: Function test1() Dim a As String a = Null test1 = a End
我有以下代码 double[,] var = new double[5,10]; double[] var2 = new double[10]; int a; for (a=0;a<10;a++)
如何链接CSVTypeColumn = CSVType01 = "AL" ? 如果 CSVTypeColumn.value = CSVType01然后CSVTypeColumn.value = "AL
在 VBA 中,我可以通过以下两种方式之一创建对象: 'First way Dim myCol1 As New Collection 'Second way Dim myCol2 As Collect
在假设将分配不必要的大量内存的情况下,我总是害怕将事物声明为变体。 最近致力于提高电子表格的性能,但我得到了相反的印象(见下面的编辑):Dim myarray() as Variant与 Dim my
这可能听起来微不足道,但它们之间的区别是什么? Dim v As String() 和 Dim v() As String 在 VB.NET 中? 最佳答案 没有不同。来自 VB.NET Langua
在此代码中: Dim files() As String = Directory.GetFiles("C:/") Dim files As String() = Directory.GetFiles(
如何将二维 Numpy 数组中的所有列堆叠到一维数组中。 即我有: x = np.array([[1, 3, 5],[2, 4, 6]]) 我想得到: np.array([1, 2, 3, 4, 5,
我是 Theano 的初学者,我正在使用另一个代码的示例,大概在某个时候可以工作(但是,我修改了它......但我很确定我的修改无关目前出了什么问题)。 无论如何,我正在尝试调试 Theano 扫描.
在 Matlab 中没有一维数组的概念。所有数组至少有两个维度。所有“向量”都是“行向量”(1xn 数组)或“列向量”(nx1 数组)。 另一方面,在 NumPy 中,数组也可以是一维的。于是就有了“
有什么区别: Dim s As String 和 Dim s As [String] 最佳答案 没有区别。 在 VB 中,您可以将标识符括在括号中,以强制将其解析为标识符而不是关键字。 例如,你可以写
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: What’s different between Dim files() As String and Dim fil
我的应用程序已经能够设置显示器关闭的超时时间,以及设置全部内容,并且还可以设置当前的亮度。 Windows 有一项附加功能,可以在一段时间后调暗显示器(高级电源使用方案设置中的“稍后调暗显示器”和“显
如前所述,我有一个一维矩阵向量,例如: P_predefined = [[.3 .4 .2 .1], [.2 .3 .5 0.], [.1 0. .8 .1], [.4 0. 0. .6]] 我想把它
Duplicate Whats the difference between declaring as new and as something new something i 遗憾的是我不知道这一点
这是一个简单的概念,但我从未被教导过。有人可以解释一下以下两种说法之间的区别吗: Dim c as MyClass Dim c as New MyClass 最佳答案 Dim c as New MyC
在我们的 VB.net 代码库中,我偶尔会看到 Dim x as new Y() ,其中 Y 是一个类。 这段代码是做什么的,它与更常见的 Dim x as Y = new Y()" 有何不同? ?
def __init__(self): super().__init__() self.conv = nn.Sequential( nn.Con
ndarray crate 的示例使用以下代码,其中 Array::random返回类型是 ArrayBase : let a = Array::random((hash_size, inp_dime
在 python 中,我希望从 1-dim 数组中逐行减去 2-dim 数组。 我知道如何使用“for”循环和索引来完成它,但我想使用 numpy 函数可能会更快。但是我没有找到办法。这是一个带有“f
我是一名优秀的程序员,十分优秀!