最近想搞个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)
就酱
评论 (0)