我想我的輸入層分割成不同大小的部分。我試圖使用tf.slice來做到這一點,但它不工作。Tensorflow:使用tf.slice拆分輸入
一些示例代碼:
import tensorflow as tf
import numpy as np
ph = tf.placeholder(shape=[None,3], dtype=tf.int32)
x = tf.slice(ph, [0, 0], [3, 2])
input_ = np.array([[1,2,3],
[3,4,5],
[5,6,7]])
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
print sess.run(x, feed_dict={ph: input_})
輸出:
[[1 2]
[3 4]
[5 6]]
這工作和大致就是我希望發生的事情,但我必須指定(在這種情況下3
)的第一個維度。我不知道,雖然多少矢量我會輸入,這就是爲什麼我使用的是placeholder
在首位None
!
是否有可能使用slice
以這樣的方式,當一個維度是未知的,直到運行時,它是否行得通呢?
我試過使用placeholder
,它的值是ph.get_shape()[0]
,如下所示:x = tf.slice(ph, [0, 0], [num_input, 2])
。但那也沒用。
尼斯。謝謝!奇怪的是,他們使用不一致的表示法('None'表示佔位符,對此不利)。 – Nimitz14