python - ValueError: 层双向的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4。收到的完整形状:(无、120、1024、1024)
问题描述
我正在尝试命名实体识别,这里是我的 x_train 和 x_test 的详细信息:
Shape X_train: (3555, 120, 1024) Shape X_test: (887, 120, 1024)
input = Input(shape=(120,))
word_embedding_size = 1024
model = Embedding(input_dim=n_words, output_dim=word_embedding_size, input_length=120)(input)
model = Bidirectional(LSTM(units=word_embedding_size,
return_sequences=True,
dropout=0.5,
recurrent_dropout=0.5,
kernel_initializer=k.initializers.he_normal()))(model)
model = LSTM(units=word_embedding_size * 2,
return_sequences=True,
dropout=0.5,
recurrent_dropout=0.5,
kernel_initializer=k.initializers.he_normal())(model)
model = TimeDistributed(Dense(n_tags, activation="relu"))(model) # previously softmax output layer
crf = CRF(n_tags) # CRF layer
out = crf(model) # output
model = Model(input, out)
adam = k.optimizers.Adam(lr=0.0005, beta_1=0.9, beta_2=0.999)
model.compile(optimizer=adam, loss=crf.loss_function, metrics=[crf.accuracy, 'accuracy'])
model.summary()
model.fit(X_train , y_train, validation_data=(X_test, y_test), epochs=10, batch_size=32)
错误是:
ValueError: Input 0 of layer bidirectional_14 is incompatible with the layer: expected ndim=3, found ndim=4. Full shape received: (None, 120, 1024, 1024)
请帮帮我,我无法通过其他答案解决。
解决方案
推荐阅读
- react-native - 用于反应原生静态图像并引发警告的 Jest 快照
- python - 在 3D 动画的透视投影中无法显示所有球体
- ios - 条件 #if DEBUG else if PRODUCTION 在 Swift 中不起作用
- ios - 如何在 iOS 应用程序中集成屏幕时间/家长控制等用户限制?
- python - 如何在 pdb 中等待协程
- java - 为什么方法在异步嵌套异常堆栈跟踪中没有出现两次?
- tensorflow - TensorFlow:损失和度量应该相同吗?
- angular - 在单元测试期间观察变量变化
- c++ - 在 Visual Studio C++ 中扫描单引号字符串时 EOL
- sql - 在 db2 的 fetch 语句中使用 sql 变量