使用Keras

时间:2017-08-07 11:18:24

标签: python tensorflow keras conv-neural-network

我正在尝试构建一个卷积神经网络来训练我之前使用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'

知道怎么解决这个问题吗?谢谢。

0 个答案:

没有答案