拟合tflearn搭建的TensorFlow模型时出现ValueError如何解决
错误根因
你代码中输入层的维度参数配置错误:tflearn.input_data的shape参数第二个位需要传入单个训练样本的特征维度,你原本写的len(training)实际是训练样本的总个数(从你的输出看是26),而你的训练集training数组的维度是(样本数, 特征数),每个样本的特征维度等于词袋列表的长度,也就是training.shape[1]或者len(words)。输入维度和实际训练数据的特征维度不匹配,所以在fit阶段喂入数据时直接触发ValueError。
修复步骤
- 替换输入层定义代码
将原代码中的
net = tflearn.input_data(shape=[None, len(training)])
修改为
net = tflearn.input_data(shape=[None, training.shape[1]]) # 也可以写为 shape=[None, len(words)],二者数值一致
- (可选优化)如果需要避免无验证集的提示,同时查看验证指标,可以修改fit调用代码,拆分小比例样本作为验证集:
model.fit(training, output, n_epoch=1000, batch_size=8, show_metric=True, validation_set=0.1)
修改后重新运行代码即可正常启动训练,show_metric配置的性能指标也会正常输出。
内容的提问来源于stack exchange,提问作者Leshan
相关产品推荐
相关产品推荐

