Python 用张量张量流进行矢量化
我有形状为(10,2)Python 用张量张量流进行矢量化,python,tensorflow,Python,Tensorflow,我有形状为(10,2)的张量x 我有形状为(10,)的张量y 我有形状为(10,)的张量 我想用下面的公式计算一个形状为(2,1)的张量dw 设dw1和dw2为张量中的元素dw dw1=tf.减少求和(x1*(y-y\u pred)*(-2/n) 其中, x1=张量x的第一列 n=标量 dw2=tf.减少求和(x2*(y-y\u pred)*(-2/n) 其中, x2=张量x的第二列 n=标量 然而,张量x将具有动态形状。 如果张量x有一个形状(10,3) dw的形状为(3,1) 在ML透视图中
的张量x 我有形状为(10,)
的张量y 我有形状为(10,)的张量 我想用下面的公式计算一个形状为(2,1)的张量dw 设dw1和dw2为张量中的元素dw
dw1=tf.减少求和(x1*(y-y\u pred)*(-2/n)
其中,
x1=张量x的第一列
n=标量 dw2=tf.减少求和(x2*(y-y\u pred)*(-2/n)
其中,
x2=张量x的第二列
n=标量 然而,张量x将具有动态形状。
如果张量x有一个形状(10,3)
dw的形状为(3,1) 在ML透视图中,我正在计算损失函数w.r.t权重的梯度。
损失函数为MSE 我知道如何使用for循环实现此功能。
但我不明白如何使用矢量化实现它,即不使用任何for循环
试试普通的老款: 说明:
tf.ones
创建一个矩阵用于演示。第一个参数标记它的形状。
x
的形状是10乘2,要将其乘以形状为10乘1的矩阵,您需要将x
然后你只需要做矩阵乘法就可以了 请注意,
dtype=tf.float32
是必需的,如果没有它,可能会出现强制转换错误
x = tf.ones((10,2), dtype=tf.float32)
y = tf.ones((10,1), dtype=tf.float32) * 2
y_pred = tf.ones((10,1), dtype=tf.float32) * 3
n = 3
result = tf.matmul(tf.transpose(x), y-y_pred) / (-n/2)