从我的网络中,我可以得到一个形状(21,3)在网络中间的张量。在我给下一个网络提供张量之前,我需要计算它。例如,我需要用张量中的特定值减去每个分量。如果
tensor[10, 0] = x, tensor[10, 1] = y, tensor[10, 2] = z tensor[:, 0] = tensor[:, 0] - x tensor[:, 1] = tensor[:, 1] - y tensor[:, 2] = tensor[:, 2] - z
也需要把它标准化
tensor[10, 0] - tensor[0, 0] = a, tensor[10, 1] - tensor[0, 1] = b, tensor[10, 2] - tensor[0, 2] = c tensor = tensor / sqrt(a^2 + b^2 + c^2)
有什么方法可以计算张量,然后再把它提供给网络的其他部分吗?
发布于 2019-03-21 15:01:17
您可以用值[tensor10,0,tensor10,1,tensor10,2]计算1,3形状的张量,如下所示:(还有其他方法)
s = tf.concat([tf.reshape(tensor[10,0], shape=[1,1]), tf.reshape(tensor[10,1], shape=[1,1]), tf.reshape(tensor[10,2], shape=[1,1])], axis=1)现在您可以从s中减去tensor
tensor2 = tensor - s您将得到的值被更新为tensor[:, 0] = tensor[:, 0] - x等使用广播。
对于正常化,您可以直接按以下方式计算:
tensor3 = tensor2 / tf.sqrt(tf.square(tensor[10,0] - tensor[0,0]) + tf.square(tensor[10,1] - tensor[0,1]) + tf.square(tensor[10,2] - tensor[0,2]))https://stackoverflow.com/questions/55279831
复制相似问题