我有一个Aspect based sentiment analysis的任务,我必须首先预测每个句子的方面。方面是预先定义的&它们总共有19个。
我必须实现一个2-layer Neural Network (对于上面的任务),其中第一层是完全连接的&第二层输出一个softmax分布。
每个句子用单词向量的平均值表示。使用的词向量模型是GoogleNews 300 dimensional wordvec model [ https://drive.google.com/file/d/0B7XkCwpI5KDYNlNUTTlSS21pQmM/edit?usp=sharing ]。
因此,对于每句话,我有一个300维的单词向量(平均每个句子中所有300个模糊的单词向量)。
当句子有方面i&k个方面的总和时,输出y被定义为y(i) = 1/k
否则y(i)=0
(注意-一个句子可以有多个方面)
为实施上述模式-
我总共有1739个句子&每个句子我都有一个300-dim字向量。所以我有一个np.array X of shape (1739,300)。类似地,y是np.array of shape (1739,19)。
我使用keras的代码是-
model = Sequential()
model.add(Dense(output_dim=64, input_dim=300))
model.add(Activation('relu'))
model.add(Dense(output_dim=19))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
model.fit(X, y, nb_epoch=3) 这段代码会让我出错-
Exception: Error when checking model input: expected dense_input_4 to have shape (None, 300) but got array with shape (1739, 1)
我对深度学习还是新手,所以如果有人能对我所做的错事有所了解呢?
发布于 2017-03-07 20:53:06
问题在于你的数据有一个错误的维度。它应该有形状(1739, 300)。重新检查您的数据准备,因为那里可能发生了错误。
https://stackoverflow.com/questions/42347678
复制相似问题