我正在尝试构建一个LSTM分类器,该分类器将读取简短的零件描述文本并将该文本分类为零件编号。零件数量非常多(40k),零件描述文本通常长几个字(最长为16个字)。零件说明在词义方面有些重叠,但是特定部分有很多不同的词。
培训:
x_train张量,形状为40k x 16(这是40k零件条目,16个单词列表)
y_train张量,形状为40k x 40k(这是40k分类编码,是一热编码的。看起来像单位矩阵)
激活:softmax
损失:categorical_crossentropy
指标:categorical_accuracy
优化器:亚当
嵌入参数:
词汇量:14,000
嵌入向量长度:16
输入长度:16
LSTM输出维数:4000(从帽子中拔出,但仍然不满意)
型号:
model = Sequential()
model.add(Embedding(14000, 16, input_length=16))
model.add(LSTM(4000))
model.add(Dense(14000, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['categorical_accuracy'])
鉴于这些是我的输入,是否有理由期望它可以训练到任何可靠的准确性水平,还是类别的数量太大?
到目前为止,我的精度为0,但是我认为这是因为我的LSTM输出维数太低。