云主机上读取 tensorflow 的.pb 模型文件内存溢出

2018-04-25 14:40:03 +08:00
 larryli1995

我的云主机是阿里云的学生机器 学校有个项目需要演示,我就向把训练好的模型,PB 文件上传到阿里云上 但结果发现每次读 PB 文件的时候报 memory error 后来我又试了试分块读取 报错 不知道大神们有没有什么好的解决方法 除了给阿里云主机升级。。。。。穷学生没钱

graph = tf.Graph() with graph.as_default(): with tf.gfile.FastGFile('face.pb', 'rb') as f: graph_def = tf.GraphDef() graph_def.ParseFromString(f.read())

2663 次点击
所在节点    程序员
13 条回复
larryli1995
2018-04-25 14:45:33 +08:00
话说 tensorflow 移植到手机上应该也是这种方法把 手机内存不会溢出么
metorm
2018-04-25 14:48:34 +08:00
两个地方编译的时候用了不同版本的 proto buff ?
larryli1995
2018-04-25 14:54:41 +08:00
@metorm 这我还真不知道 我都是 PIP 直接装的 这个要怎么看啊?
metorm
2018-04-25 16:02:17 +08:00
Python 版本也一样吗?没用过 pb 文件迁移模型。
larryli1995
2018-04-25 16:25:35 +08:00
@metorm 一样的
poorguy
2018-04-25 17:08:01 +08:00
试试 yield ?大概这样
```python
def read_file(fpath):
BLOCK_SIZE = 1024
with open(fpath, 'rb') as f:
while True:
block = f.read(BLOCK_SIZE)
if block:
yield block
else:
return
```
afpro
2018-04-25 17:12:26 +08:00
graph_def.ParseFromString(f.read())
说清楚 是 f.read() 还是 graph_def.ParseFromString()出的问题?
larryli1995
2018-04-26 11:37:54 +08:00
@afpro f.read()
larryli1995
2018-04-26 11:38:31 +08:00
@poorguy 我试啦 不行 如果用块读的话 graph_def.ParseFromString ()报错
poorguy
2018-04-26 11:40:23 +08:00
@larryli1995 那把报错贴出来啊朋友
afpro
2018-04-26 12:16:54 +08:00
@larryli1995 mmap 试试看?
larryli1995
2018-04-26 12:29:30 +08:00
@poorguy memory error 兄弟你不审题的么
Arnie97
2018-04-27 02:12:03 +08:00
swap ?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/449744

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX