我正在尝试制作我的模型,首先是两层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()