TensorFlow模型保存的一个坑
来源:互联网 发布:matlab画数据分布图 编辑:程序博客网 时间:2024/06/04 19:15
最近工作需要,使用tensorflow(r1.3)中contrib的某个库,根据tf官网的说法,go版本是只能调用py版本训练好的模型,而个人对go比较熟且线上环境用go作服务,所以想用go调python训练好的模型。
使用python import tf和tf.contrib相关库,使用tf.saved_model.builder.SavedModelBuilder保存模型,但使用go使用LoadSavedModel的时候,会报形如Not found Op type not registered 'CountExtremelyRandomStats'
的错误,具体的话是说在libtensorflow里面找不到CountExtremelyRandomStats
这个op。
尝试了很多方案,略过。最终发现问题是TensorFlow在BUILD target:libtensorflow.so的时候,根本没有把contrib相关内容打进去。修改根BUILD文件的libtensorflow.so部分如下:
cc_binary( name = "libtensorflow.so", linkopts = select({ "//tensorflow:darwin": [ "-Wl,-exported_symbols_list", # This line must be directly followed by the exported_symbols.lds file "//tensorflow/c:exported_symbols.lds", ], "//tensorflow:windows": [], "//tensorflow:windows_msvc": [], "//conditions:default": [ "-z defs", "-s", "-Wl,--version-script", # This line must be directly followed by the version_script.lds file "//tensorflow/c:version_script.lds", ], }), linkshared = 1, deps = [ "//tensorflow/contrib:contrib_kernels", "//tensorflow/contrib:contrib_ops_op_lib", "//tensorflow/c:c_api", "//tensorflow/c:exported_symbols.lds", "//tensorflow/c:version_script.lds", "//tensorflow/core:tensorflow", ],)
contrib那两行依赖是新加进去的,然后重新用bazel编译一个libtensorflow就可以了。期间困惑的是为什么python用pip装的就可以用contrib呢,观察tools/pip_packages/BUILD文件发现pip的包,是包含了所有contrib的依赖的。感觉官方团队对非python语言的重视还不够,没有明显说明这个东西,有人提了issue也没有人回应(我最后回应了这个op相关的一个issue:https://github.com/tensorflow/tensorflow/issues/14358)。
- TensorFlow模型保存的一个坑
- tensorflow 的模型保存和调用
- 6.TensorFlow模型的保存和读取
- TensorFlow模型的保存和持久化
- tensorflow中模型的保存和恢复
- tensorflow 模型的保存与恢复(Saver)
- Tensorflow进行保存模型
- tensorflow 模型保存问
- TensorFlow保存读取模型
- Tensorflow:模型保存/模型恢复?
- keras模型保存为tensorflow的二进制模型
- tensorflow(三) 模型保存
- tensorflow(三) 模型保存
- tensorflow保存 和 加载模型
- Tensorflow保存和读取模型
- Tensorflow模型保存与读取
- tensorflow-模型保存与读取
- tensorflow 模型保存与加载
- Metasploit阅读笔记1
- 7.1
- 博客第一次
- Handler或Runnable作为非静态内部类,引发的内存泄露问题
- android 文字超出控件宽度时,自动滚动显示,类似跑马灯效果
- TensorFlow模型保存的一个坑
- 安卓移动文件(图片)到指定目录,并在相册中显示
- Alias sampling 算法用Python实现
- 数据结构实验(二):间接寻址
- FFmpeg-3.3.1移植到Android平台
- document操作自定义属性
- Source Insight--艰难的编辑工具学习小记
- Java中的equals方法以及==
- java变量的数据类型