1
我在玩map_fn函數,注意到它輸出一個TensorArray,這意味着它能夠輸出「鋸齒」張量(其中內部的張量具有不同的第一維度。tensorflow map_fn TensorArray的形狀不一致
我試圖看到這個動作與此代碼:
import tensorflow as tf
import numpy as np
NUM_ARRAYS = 1000
MAX_LENGTH = 1000
lengths = tf.placeholder(tf.int32)
tArray = tf.map_fn(lambda x: tf.random_normal((x,), 0, 1),
lengths,
dtype=tf.float32) # Should return a TensorArray.
# startTensor = tf.random_normal((tf.reduce_sum(lengths),), 0, 1)
# tArray = tf.TensorArray(tf.float32, NUM_ARRAYS)
# tArray = tArray.split(startTensor, lengths)
# outArray = tArray.concat()
with tf.Session() as sess:
outputArray, l = sess.run(
[tArray, lengths],
feed_dict={lengths: np.random.randint(MAX_LENGTH, size=NUM_ARRAYS)})
print outputArray.shape, l
然而得到了錯誤:
「TensorArray具有不一致的形狀索引0具有形狀:[259],但指數1具有形狀:[773]「
這對我來說當然是一個驚喜,因爲我的印象是TensorArrays應該能夠處理它。我錯了嗎?