ValueError: could not convert string to float: '\ufeff50'及ValueError: Cannot feed value of shape错误

(作者:陈玓玏)

一、 ValueError: could not convert string to float: '\ufeff50’错误

错误场景:使用tensorflow的tf.contrib.learn.datasets.base.load_csv_without_header读取csv文件时,出现错误**ValueError: could not convert string to float: '\ufeff50'**

可能的原因:可能是因为你的数据中有一些空白格或者字符串。

解决方案:最好确保文件不该有数据的地方是没有数据的,我把读取的csv周边的一圈没有数据的部分都删除一遍之后,错误就消失了。虽然肉眼不可见,但可能存在空格或者隐藏的单元格。

二、 ValueError: Cannot feed value of shape (100,) for Tensor ‘Placeholder_19:0’, which has shape '(?, 1)'错误

错误场景:用tensorflow建模 时,通过shuffle_batch从csv文件中读取数据,并打乱,生成样本batch和标签batch,但是通过预测结果y和标签计算预测精度时,出现错误ValueError: Cannot feed value of shape (100,) for Tensor 'Placeholder_19:0', which has shape '(?, 1)'

可能的原因:使用train_step.run来跑模型时,特征和label都是二位numpy.array,而我用shuffle_batch读取并由sess.run获得的特征是二维array,label是一维的,所以出现了维度问题。

解决方案:需要人为转换一下,将一维label转换为二维label,保证一个样本一行,无论特征还是label,问题得以解决。

具体代码如下:

原来的label:
[0,1,0,0,1]
需要的label:
[[0],
 [1],
 [0],
 [0],
 [1]]

转换:
new_label = []
for i in label:
     new_label.append([i])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值