我正在尝试构建一个卷积神经网络来训练我之前使用word2vec获得的单词向量。
CNN的输入是句子。每个句子是一个大小为(1,50)的单词向量数组。因此,根据N(句子中的单词数),输入是一个大小为(N,50)的向量
CNN的定义如下:
def word2vec2intentions(num_classes):
# create model
model = Sequential()
model.add(Conv2D(5, (2, 50), input_shape=(1, 50, None), activation='relu', strides=1, padding="valid"))
model.add(MaxPooling2D(pool_size=(1, 5)))
model.add(Dense(5, activation='sigmoid'))
model.add(Dropout(0.1))
model.add(Dense(10, activation='sigmoid'))
model.add(Dense(num_classes, activation='softmax'))
# Compile model
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
但是,当我尝试运行该函数时,我收到此错误:
使用TensorFlow后端。 Traceback(最近一次调用最后一次): 文件“/Users/zakariael/darija-word2vec/keras_intent_classifier.py”,第35行, model = word2vec2intentions(22) 在word2vec2intentions中输入文件“/Users/zakariael/darija-word2vec/keras_intent_classifier.py”,第27行 model.add(Dense(5,activation ='sigmoid')) 文件“/Users/zakariael/.virtualenvs/tf/lib/python3.6/site-packages/keras/models.py”,第469行,另外 output_tensor = layer(self.outputs [0]) 在电话中输入文件“/Users/zakariael/.virtualenvs/tf/lib/python3.6/site-packages/keras/engine/topology.py”,第569行 self.build(input_shapes [0]) 文件“/Users/zakariael/.virtualenvs/tf/lib/python3.6/site-packages/keras/layers/core.py”,第825行,在构建中 约束= self.kernel_constraint) 文件“/Users/zakariael/.virtualenvs/tf/lib/python3.6/site-packages/keras/legacy/interfaces.py”,第87行,包装中 return func(* args,** kwargs) 在add_weight中输入文件“/Users/zakariael/.virtualenvs/tf/lib/python3.6/site-packages/keras/engine/topology.py”,第391行 weight = K.variable(初始值设定项(形状),dtype = dtype,name = name) 在电话中输入文件“/Users/zakariael/.virtualenvs/tf/lib/python3.6/site-packages/keras/initializers.py”,第200行 scale / = max(1。,float(fan_in + fan_out)/ 2)
TypeError:+不支持的操作数类型:'NoneType'和'int'
知道怎么解决这个问题吗?谢谢。