为什么神经网络输出不可预测的形状?

问题描述

我已经针对1D数据调整了AlexNet架构,如下所示:

import keras
from keras.models import Sequential
from keras.layers import Dense,Activation,Dropout,Flatten,Conv1D,MaxPooling1D
from keras.layers.normalization import BatchNormalization
import numpy as np
np.random.seed(1000)
#Instantiate an empty model
model = Sequential()

# 1st Convolutional Layer
model.add(layers.Embedding(vocab_size,embedding_dim,input_length=input_length))
model.add(Conv1D(filters=96,kernel_size=11,strides=4,padding='same'))
model.add(Activation('relu'))
# Max Pooling
model.add(MaxPooling1D(pool_size=2,strides=2,padding='same'))
# model.add(Flatten())

# 2nd Convolutional Layer
model.add(Conv1D(filters=256,strides=1,padding='same'))
# model.add(Flatten())

# 3rd Convolutional Layer
model.add(Conv1D(filters=384,kernel_size=3,padding='same'))
model.add(Activation('relu'))

# 4th Convolutional Layer
model.add(Conv1D(filters=384,padding='same'))
model.add(Activation('relu'))

# 5th Convolutional Layer
model.add(Conv1D(filters=256,padding='same'))

# Passing it to a Fully Connected layer
model.add(Flatten())
# 1st Fully Connected Layer
model.add(Dense(4096,input_shape=(10,39424)))
model.add(Activation('relu'))
# Add Dropout to prevent overfitting
model.add(Dropout(0.4))

# 2nd Fully Connected Layer
model.add(Dense(4096))
model.add(Activation('relu'))
# Add Dropout
model.add(Dropout(0.4))

# 3rd Fully Connected Layer
model.add(Dense(1000))
model.add(Activation('relu'))
# Add Dropout
model.add(Dropout(0.4))

# Output Layer
model.add(Dense(8))
model.add(Activation('softmax'))

model.summary()

# Compile the model
model.compile(loss=keras.losses.categorical_crossentropy,optimizer='adam',metrics=['accuracy'])  

但是,我遇到以下错误:

ValueError: Input 0 of layer dense_30 is incompatible with the layer: expected axis -1 of input shape 
to have value 39424 but received input with shape [10,23552]

我不知道为什么平坦层给出[10,23552]的输出。它应该给出39424! 问题是第一个密集层从平坦层收到了不可预测的数据形状! 我认为扁平化层必须输出1D数据而不是2D数据([10,23552]) 模型摘要如下:

Model: "sequential_15"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
embedding_13 (Embedding)     (None,4924,128)         6400      
_________________________________________________________________
conv1d_40 (Conv1D)           (None,1231,96)          135264    
_________________________________________________________________
activation_47 (Activation)   (None,96)          0         
_________________________________________________________________
max_pooling1d_25 (MaxPooling (None,616,96)           0         
_________________________________________________________________
conv1d_41 (Conv1D)           (None,256)          270592    
_________________________________________________________________
activation_48 (Activation)   (None,256)          0         
_________________________________________________________________
max_pooling1d_26 (MaxPooling (None,308,256)          0         
_________________________________________________________________
conv1d_42 (Conv1D)           (None,384)          295296    
_________________________________________________________________
activation_49 (Activation)   (None,384)          0         
_________________________________________________________________
conv1d_43 (Conv1D)           (None,384)          442752    
_________________________________________________________________
activation_50 (Activation)   (None,384)          0         
_________________________________________________________________
conv1d_44 (Conv1D)           (None,256)          295168    
_________________________________________________________________
activation_51 (Activation)   (None,256)          0         
_________________________________________________________________
max_pooling1d_27 (MaxPooling (None,154,256)          0         
_________________________________________________________________
flatten_13 (Flatten)         (None,39424)             0         
_________________________________________________________________
dense_30 (Dense)             (None,4096)              161484800 
_________________________________________________________________
activation_52 (Activation)   (None,4096)              0         
_________________________________________________________________
dropout_18 (Dropout)         (None,4096)              0         
_________________________________________________________________
dense_31 (Dense)             (None,4096)              16781312  
_________________________________________________________________
activation_53 (Activation)   (None,4096)              0         
_________________________________________________________________
dropout_19 (Dropout)         (None,4096)              0         
_________________________________________________________________
dense_32 (Dense)             (None,1000)              4097000   
_________________________________________________________________
activation_54 (Activation)   (None,1000)              0         
_________________________________________________________________
dropout_20 (Dropout)         (None,1000)              0         
_________________________________________________________________
dense_33 (Dense)             (None,8)                 8008      
_________________________________________________________________
activation_55 (Activation)   (None,8)                 0         
=================================================================
Total params: 183,816,592
Trainable params: 183,592
Non-trainable params: 0

任何线索?

解决方法

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

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

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