我正在尝试制作我的模型,首先是两层cnn,然后是一层rnn,但是当我使用rnn输出到rnn时 .
它显示 TypeError: inputs must be a sequence
我打印了我的辍学形状,它是[1,1024,]但我不是't know why it isn' t序列,但我搜索doc找到以下
(我使用static_rnn函数)
inputs:输入的长度为T的列表,每个都是形状张量[batch_size,input_size]或这些元素的嵌套元组 .
下面是我的代码(在我的情况下,size = 200,dimension = 19)
input_layer = tf.reshape(data, [-1, dimensions, size, size], name='inputs')
# Convolutional Layer #1
conv1 = tf.layers.conv2d(
inputs=input_layer,
filters=64,
kernel_size=[5, 5],
padding="same",
data_format="channels_first",
activation=tf.nn.relu)
pool1 = tf.layers.max_pooling2d(
inputs=conv1,
pool_size=[2, 2],
strides=2,
data_format="channels_first",
)
conv2 = tf.layers.conv2d(
inputs=pool1,
filters=128,
kernel_size=[5, 5],
padding="same",
data_format="channels_first",
activation=tf.nn.relu)
pool2 = tf.layers.max_pooling2d(
inputs=conv2,
pool_size=[2, 2],
strides=2,
data_format="channels_first",
)
pool2_flat = tf.reshape(pool2, [-1, 50 * 50 * 128])
dense = tf.layers.dense(inputs=pool2_flat, units=1024, activation=tf.nn.relu)
dropout = tf.layers.dropout(inputs=dense, rate=0.4)
rnn_unit_size = 1024
num_layers = 2
rnn_cell = tf.nn.rnn_cell.BasicRNNCell(num_units=rnn_unit_size)
rnn_cell = tf.nn.rnn_cell.MultiRNNCell([rnn_cell] * num_layers)
init_state = rnn_cell.zero_state(1, dtype=tf.float32)
outputs, status = tf.nn.static_rnn(cell=rnn_cell, inputs=dropout, initial_state=init_state)
sess = tf.Session()
sess.run(init_op)
print(sess.run(outputs))
sess.close()