我从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。现在突然间我得到了这个例外。是因为我在我的机器上安装了什么东西吗?
我能够在我的智能手机上安装该应用程序,没有任何错误。现在它给了我错误。我使用的是相同的代码。
答案 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())