我试图建立一个卷积神经网络来训练我之前用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
但是,当我尝试运行该函数时,我得到以下错误:
Using TensorFlow backend. Traceback (most recent call last): File "/Users/zakariael/darija-word2vec/keras_intent_classifier.py", line 35, in model = word2vec2intentions(22) File "/Users/zakariael/darija-word2vec/keras_intent_classifier.py", line 27, in word2vec2intentions model.add(Dense(5, activation='sigmoid')) File "/Users/zakariael/.virtualenvs/tf/lib/python3.6/site-packages/keras/models.py", line 469, in add output_tensor = layer(self.outputs[0]) File "/Users/zakariael/.virtualenvs/tf/lib/python3.6/site-packages/keras/engine/topology.py", line 569, in call self.build(input_shapes[0]) File "/Users/zakariael/.virtualenvs/tf/lib/python3.6/site-packages/keras/layers/core.py", line 825, in build constraint=self.kernel_constraint) File "/Users/zakariael/.virtualenvs/tf/lib/python3.6/site-packages/keras/legacy/interfaces.py", line 87, in wrapper return func(*args, **kwargs) File "/Users/zakariael/.virtualenvs/tf/lib/python3.6/site-packages/keras/engine/topology.py", line 391, in add_weight weight = K.variable(initializer(shape), dtype=dtype, name=name) File "/Users/zakariael/.virtualenvs/tf/lib/python3.6/site-packages/keras/initializers.py", line 200, in call scale /= max(1., float(fan_in + fan_out) / 2)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
你知道怎么解决这个问题吗?谢谢您。在
目前没有回答
相关问题 更多 >
编程相关推荐