gpt4 book ai didi

python - 在tensorflow中解压(unstack)一个没有维度的输入(占位符)

转载 作者:太空宇宙 更新时间:2023-11-03 12:02:56 27 4
gpt4 key购买 nike

我正在尝试将 LSTM 与具有不同时间步长(不同帧数)的输入一起使用。 rnn.static_rnn 的输入应该是一个 tf 序列(不是 tf!)。所以,我应该将我的输入转换为序列。我尝试使用 tf.unstack 和 tf.split,但它们都需要知道输入的确切大小,而我的输入(时间步长)的一维因不同的输入而变化。以下是我的部分代码:

n_input = 256*256 # data input (img shape: 256*256)
n_steps = None # timesteps
batch_size = 1
# tf Graph input
x = tf.placeholder("float", [ batch_size , n_input,n_steps])
y = tf.placeholder("float", [batch_size, n_classes])
# Permuting batch_size and n_steps
x1 = tf.transpose(x, [2, 1, 0])
x1 = tf.transpose(x1, [0, 2, 1])
x3=tf.unstack(x1,axis=0)
#or x3 = tf.split(x2, ?, 0)
# Define a lstm cell with tensorflow
lstm_cell = rnn.BasicLSTMCell(num_units=n_hidden, forget_bias=1.0)

# Get lstm cell output
outputs, states = rnn.static_rnn(lstm_cell, x3, dtype=tf.float32,sequence_length=None)

我在使用 tf.unstack 时遇到以下错误:

ValueError: Cannot infer num from shape (?, 1, 65536)

还有一些讨论herehere ,但没有一个对我有用。任何帮助表示赞赏。

最佳答案

here 中所述,如果参数未指定且不可推断,则 tf.unstack 不起作用。

在您的代码中,在转置之后,x1 的形状为 [ n_steps, batch_size, n_input] 并且其值位于 axis=0设置为 None

关于python - 在tensorflow中解压(unstack)一个没有维度的输入(占位符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43074435/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com