UnicodeDecodeError:' utf-8'编解码器无法解码位置38中的字节0xff:无效的起始字节

时间:2017-10-03 15:29:21

标签: python exception tensorflow utf-8

我从Tensorflow导入我的模型,只想使用以下代码优化训练模型:

input_graph_def = tf.GraphDef()
with tf.gfile.Open(output_frozen_graph_name, "r") as f:
    data = f.read()
    input_graph_def.ParseFromString(data)

output_graph_def = optimize_for_inference_lib.optimize_for_inference(
        input_graph_def,
        ["input"], 
        ["y_"],
        tf.float32.as_datatype_enum)

f = tf.gfile.FastGFile("optimized_shoaib-har_agm.pb", "w")
f.write(output_graph_def.SerializeToString())

它显示了这个错误:

  

回溯(最近一次呼叫最后):文件"",第2行,in          data = f.read()File" C:\ Users \ Chaine \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ tensorflow \ python \ lib \ io \ file_io.py",   第125行,正在阅读中       pywrap_tensorflow.ReadFromStream(self._read_buf,length,status))文件   " C:\用户\锚链\应用程序数据\本地\程序\的Python \ Python35 \ lib中\站点包\ tensorflow \蟒\ lib中\ IO \ file_io.py&#34 ;,   第93行,在_prepare_value中       return compat.as_str_any(val)File" C:\ Users \ Chaine \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ tensorflow \ python \ util \ compat.py",   第106行,在as_str_any中       return as_str(value)File" C:\ Users \ Chaine \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ tensorflow \ python \ util \ compat.py",   第84行,as_text       return bytes_or_text.decode(encoding)UnicodeDecodeError:' utf-8'编解码器不能解码位置38中的字节0xff:无效的起始字节

在它工作正常之前。我甚至已将它导入Android Studio。现在突然间我得到了这个例外。是因为我在我的机器上安装了什么东西吗?

我能够在我的智能手机上安装该应用程序,没有任何错误。现在它给了我错误。我使用的是相同的代码。

1 个答案:

答案 0 :(得分:1)

Python正在尝试解码文件“output_frozen_graph_name”中的所有字符。不确定文件中有什么变化,如果它之前适合你,但很明显看起来有些字符不是'UTF-8'兼容的。现在,它们可以是'UTF-16'或其他一些编解码格式。一种知道方法是以字节格式读取内容并自行解码。尝试阅读如下内容以检查内容:

input_graph_def = tf.GraphDef()
with tf.gfile.Open(output_frozen_graph_name, "rb") as f:
    data = f.read()
    input_graph_def.ParseFromString(data)

output_graph_def = optimize_for_inference_lib.optimize_for_inference(
        input_graph_def,
        ["input"], 
        ["y_"],
        tf.float32.as_datatype_enum)

f = tf.gfile.FastGFile("optimized_shoaib-har_agm.pb", "w")
f.write(output_graph_def.SerializeToString())