TensorFlow学习笔记7——Win7下Spyder运行python代码出现UnicodeEncodeError问题的解决

环境:

        win7+Anaconda1.6.3+Spyder3.2.1+tensorflow1.1.0


问题描述:

        执行下述代码,读取之前保存的tfrecord文件,发生错误。

        

import tensorflow as tf

files = tf.train.match_filenames_once("./output/training-images/*.tfrecords")
#虽然没有variable,但也必须init,并且global和local都要有,不然会报错,不信你试试。
init = [tf.global_variables_initializer(), tf.local_variables_initializer()]
with tf.Session() as sess:
    sess.run(init)
    print (sess.run(files))

        错误提示为UnicodeEncodeError: 'utf-8' codec can't encode character '\udcd5' in position 2255: surrogates not allowed。


解决:

     问题发生在tf.train.match_filenames_once这句话。网上提问这个错误的很多,但没有好的解决办法。也浪费了我大半天的时间,如程序所示,我的路径不含中文啊。想到可能是路径问题,我便把项目的整个文件夹拷贝到桌面上,没出现错误!返回到我E盘的项目中,我看到E盘根目录下经过几级目录后,才到项目的路径,即:E:\★11-python\tensorflow\例程\StanfordDog_test\output\training-images,把这里的中文也改成英文E:\★11-python\tensorflow\example\StanfordDog_test\output\training-images,成功了!


总结:

    出现上述错误时,要把从硬盘开始一直到文件最后的目录都改成英文,而不是只改子目录。如果还有问题,请检查并确保计算机名称中也不含中文字符。


然而!

     我重启电脑,把之前改成英文的路径再改回E:\★11-python\tensorflow\例程\StanfordDog_test\output\training-images,程序执行成功了,没报错!!!!这个真不懂咋回事了。o(╥﹏╥)o

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值