层 time_distributed_30 的输入 0 与层不兼容:预期 ndim=5,发现 ndim=4收到完整形状:无,无,无,无

问题描述

  1. 我正在尝试对 10 个类的 MSTAR 数据集进行分类
  2. 我使用了包含 15 个时间步长的 DCNN 和 BILSTM 的模态

我的问题是:

  1. 如何克服错误
  2. 如何获得好的分类结果。

我的代码是:

inputs=Input(shape=(15,60,3))
model = Sequential()
# 1st Convolutional Layer
model.add(Timedistributed(Conv2D(filters=16,kernel_size=(5,5),padding='valid'),input_shape=(15,3)))
model.add(Timedistributed(Activation('relu')))
# Batch normalisation
model.add(Timedistributed(Batchnormalization()))
# Pooling 
model.add(Timedistributed(MaxPooling2D(pool_size=(2,2),strides=(2,padding='valid')))

# 2nd Convolutional Layer
model.add(Timedistributed(Conv2D(filters=32,padding='valid')))
model.add(Timedistributed(Activation('relu')))
# Batch normalisation
model.add(Timedistributed(Batchnormalization()))
# Pooling
model.add(Timedistributed(MaxPooling2D(pool_size=(2,padding='valid')))

# 3rd Convolutional Layer
model.add(Timedistributed(Conv2D(filters=64,padding='valid')))
model.add(Activation('relu'))
# Batch normalisation
model.add(Timedistributed(Batchnormalization()))
# Pooling
model.add(Timedistributed(MaxPooling2D(pool_size=(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,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()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)