【发布时间】:2017-11-10 14:37:51
【问题描述】:
我在 Keras 中有一个非常简单的 FFNN。
model = Sequential()
shared_embedding = Embedding(vocab_size, word_emb_dim, input_length=1, name='embedding')
model.add(shared_embedding)
model.add(Dropout(emb_dropout))
model.add(Dense(hidden_size, name='hidden',
kernel_constraint=max_norm(max_norm_size), activation='relu'))
model.add(shared_embedding)
model.add(Dense(vocab_size, name='output',
kernel_constraint=max_norm(max_norm_size), activation='softmax'))
model.compile(optimizer=optimizer, loss='sparse_categorical_crossentropy')
这是一个非常、非常简单的单词模型,仅预测二元组。所以给定数据中的一个词,模型应该预测下一个词。
我的词汇量为 50,000,我有大约 1100 万个二元组。所以不用说,我不能将所有的目标都存储在一个完整的热编码矩阵中。
我想要做的就是能够将目标的整数直接用于keras,并强制keras对其进行处理。我本以为将损失指定为 sparse_categorical_crossentropy 就足够了,但我想不是。
有人知道该怎么做吗?
【问题讨论】: