我正在尝试使用TFLearn训练CNN进行句子分类。
所以每个句子的大小为30x100
。
我想使用TFLearn设计CNN来对这些句子进行分类,为了测试这一点,我编写了以下代码
net = tflearn.input_data(shape=[None, 30])
net = tflearn.conv_1d(net, 128, 5, padding="valid", activation='relu')
net = tflearn.max_pool_1d(net, 2)
net = tflearn.dropout(net, 0.5)
net = tflearn.fully_connected(net, 10, activation='softmax')
net = tflearn.regression(net, optimizer='adam', learning_rate=0.001, loss='categorical_crossentropy')
运行此命令时,出现以下错误
Incoming Tensor shape must be 3-D
我通过更改
解决了这个问题 net = tflearn.input_data(shape=[None, 30])
到
net = tflearn.input_data(shape=[None, 30, 100])
因为每个单词都由大小为100的向量表示。
以16个批次和1000个时期的批次进行训练时,损失约为1.5,准确度为65%-71%,而且无论如何它似乎都不会随着时间的推移而改善。
所以我的问题是,是由于输入形状存在某种错误而导致模型无法收敛,还是因为我的训练数据不够好而导致模型无法收敛,还是应该训练更长的时间?