Mih*_*kar 7 python numpy theano tensorflow
我已经看到转置和重塑在一起可以帮助但我不知道如何使用.
例如.dimshuffle(0,'x')
通过使用转置和重塑它的等价物是什么?或者,还有更好的方法?谢谢.
mrr*_*rry 11
dimshuffle在TensorFlow中有三个相关的操作来实现Theano的:
tf.transpose()用于置换张量的维数.如果参数中指定的模式dimshuffle是输入张量维度的排列(即没有'x'或缺少维度),则可以使用它tf.transpose()来实现dimshuffle().
tf.expand_dims()用于将一个或多个size-1维度添加到张量.这将处理'x'指定为dimshuffle()模式的一部分但不重新排序现有维度的情况.
tf.squeeze()用于从张量中移除一个或多个尺寸1的尺寸.这样可以处理从dimshuffle()模式中省略尺寸的情况,但不会对现有尺寸重新排序.
假设输入是一个向量,您的example(dimshuffle(0, 'x'))只能用以下表达tf.expand_dims():
input = tf.placeholder(tf.float32, [None]) # Defines an arbitrary-sized vector.
result = tf.expand_dims(input, 1)
print result.get_shape() # ==> TensorShape([Dimension(None), Dimension(1)])
Run Code Online (Sandbox Code Playgroud)
采用更复杂的例子,dimshuffle(1, 'x', 0)应用于矩阵将是:
input = tf.placeholder(tf.float32, [128, 32]) # Defines a matrix.
output = tf.expand_dims(tf.transpose(input, [1, 0]), 1)
print output.get_shape()
# ==> TensorShape([Dimension(32), Dimension(1), Dimension(128)])
Run Code Online (Sandbox Code Playgroud)