首先我的一些代码:
...
fc_1 = layers.Dense(256, activation='relu')(drop_reshape)
bi_LSTM_2 = layers.Lambda(buildGruLayer)(fc_1)
...
def buildGruLayer(inputs):
gru_cells = []
gru_cells.append(tf.contrib.rnn.GRUCell(256))
gru_cells.append(tf.contrib.rnn.GRUCell(128))
gru_layers = tf.keras.layers.StackedRNNCells(gru_cells)
inputs = tf.unstack(inputs, axis=1)
outputs, _ = tf.contrib.rnn.static_rnn(
gru_layers,
inputs,
dtype='float32')
return outputs
运行static_rnn时出现的错误是:
raise TypeError("Cannot convert value %r to a TensorFlow DType." % type_value)
TypeError: Cannot convert value None to a TensorFlow DType.
进入图层的形状为(64,238,256)。
任何人都知道可能是什么问题。我已经用Google搜索了错误,但找不到任何东西。非常感谢您的帮助。
答案 0 :(得分:0)
如果仍然有人需要解决方案。这是因为您需要为GRUCell指定dtype,例如tf.float32
其默认值为None,在文档中默认为输入数据的第一维(即批处理维,在tensorflow中为?或None)
从中检查dtype参数: https://www.tensorflow.org/api_docs/python/tf/compat/v1/nn/rnn_cell/GRUCell