编译tensorflow踩的坑

canoziia
2022-05-08 / 0 评论 / 230 阅读 / 正在检测是否收录...

最近想搞个Deep Danbooru的网页版,挂在服务器上跑。写完了代码搬到服务器上跑的时候发现tensorflow报错 illegal instruction 网上查了下,发现应该是因为我服务器的cpu E5530不支持avx指令集。所以得要自己编译。编译的大部分过程官网都写得比较清楚了。建议用docker编译会比较方便。但是我第一次编的时候到一半内存突然满了,之后就报错了。按照官方说明加了一个

--local_ram_resources=12288

,结果还是报错。在tensorflow的issue里面找到有人说还要再加上一个cpu核数的限制,加上

--local_cpu_resources=10

这个参数之后确实编译成功了。注意

./configure

的时候会问你加什么选项,选 -march=native 可以根据自己cpu做优化。
但是拿到服务器上跑了一下,依然 illegal instruction ,于是排查其他软件包,发现作者还用了tensorflow-io包。官网上也有写编译的教程,但是比较乱。试着操作了一下,失败了。后来发现作者用这个包只是转换了一下图片,估计用不到特殊的指令集,所以按照issue的说明直接clone仓库之后

python setup.py bdist_wheel

构建轮子安装。这样会报警告找不到 xx.so 文件,但是不影响程序正常运行。


最后说一下弄完的api。我把站点放在 https://api.dnlab.net/animepic
大家可以往 https://api.dnlab.net/animepic/upload 这里post图片

import requests

url = 'https://api.dnlab.net/animepic/upload'
files = {'img': open("xx.jpg", 'rb')}
res = requests.post(url=url, files=files)
print(res.text)

就酱

1

评论 (0)

取消