您的位置:首页 > 编程语言 > Python开发

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

2017-11-07 16:39 591 查看
环境:

        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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐