keras - 层 time_distributed_30 的输入 0 与层不兼容:预期 ndim=5,发现 ndim=4。收到的完整形状:(无,无,无,无)
问题描述
- 我正在尝试用 10 个类对 MSTAR 数据集进行分类
- 我使用了包含 15 个时间步长的 DCNN 和 BILSTM 的模态
我的问题是:
- 如何克服错误
- 如何得到好的分类结果。
我的代码是:
inputs=Input(shape=(15,60,60,3))
model = Sequential()
# 1st Convolutional Layer
model.add(TimeDistributed(Conv2D(filters=16 ,kernel_size=(5,5), padding='valid'),input_shape=(15,60,60,3)))
model.add(TimeDistributed(Activation('relu')))
# Batch Normalisation
model.add(TimeDistributed(BatchNormalization()))
# Pooling
model.add(TimeDistributed(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding='valid')))
# 2nd Convolutional Layer
model.add(TimeDistributed(Conv2D(filters=32, kernel_size=(5,5), padding='valid')))
model.add(TimeDistributed(Activation('relu')))
# Batch Normalisation
model.add(TimeDistributed(BatchNormalization()))
# Pooling
model.add(TimeDistributed(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding='valid')))
# 3rd Convolutional Layer
model.add(TimeDistributed(Conv2D(filters=64, kernel_size=(5,5), padding='valid')))
model.add(Activation('relu'))
# Batch Normalisation
model.add(TimeDistributed(BatchNormalization()))
# Pooling
model.add(TimeDistributed(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding='valid')))
# 4th Convolutional Layer
model.add(TimeDistributed(Conv2D(filters=128, kernel_size=(4,4), padding='valid')))
model.add(TimeDistributed(Activation('relu')))
# Batch Normalisation
model.add(TimeDistributed(BatchNormalization()))
model.add(TimeDistributed(Flatten()))
#add dropout
model.add(Dropout(0.0))
#bidirectional lstm
model.add(Bidirectional(LSTM(1024,activation='tanh',return_sequences=True)))
#2 nd bidirectional layer
model.add(Bidirectional(LSTM(1024,activation='tanh',return_sequences=False)))
# Output Layer
model.add(Dense(10))
model.add(Activation('softmax'))
# (4) Compile
model.compile(loss='categorical_crossentropy', optimizer='adam',\
metrics=['accuracy'])
model.summary()
解决方案
推荐阅读
- asp.net-mvc - 在 Visual Studio 代码上支持 .NET Framework 4.x
- android - Webrtc - 未收到任何音频
- spring - 一次只有一个用户使用整个 Web 应用程序 - Spring Boot
- c++ - Define field with macro, but Field cannot have type 'void' and/or Expected ')'
- laravel - 在 Laravel Blade 文件中使用 Input 类
- hibernate - hibernate envers mapkeyenumerated
- ansible - Ansible:从变量名引用变量内容
- r - R用read.csv读取csv文件
- ruby-on-rails - OmniAuth::NoSessionError(您必须提供会话才能使用 OmniAuth。):
- c# - C# - 使用互操作将 Excel 复制到 Word