模型来源:GantMan/nsfw_model: Keras model of NSFW detector (github.com)https://github.com/GantMan/nsfw_model
部署的环境配置:(nsfw-model-conda环境)
具体配置如下:tf24、python38
配置脚本总结(可能不全)
#创建虚拟环境nsfw和python版本
conda create -n nsfw python=3.8
#尝试安装tensorflow==2.6.0,因为模型需要>=2.2.0
pip install tensorflow==2.6.0 -i https://pypi.douban.com/simple/
#为了jupyter,vscode会提示安装,不过建议再命令行安装,这样在pycharm也可以用(好像)
conda install ipykernel
#添加虚拟环境到内核(很重要)(vscode不用,pycharm要,jupyter也要,不然内核change中无法看到新的虚拟环境)
ipython kernel install --user --name=nsfw
#导入tensorflow报错,修改protobuf版本
conda install protobuf==3.19.6
#安装tensorflow-hub:0.5/0.12/0.13
pip install tensorflow-hub -i https://pypi.douban.com/simple/
pip install tensorflow_hub -i https://pypi.douban.com/simple/
#导入tensorflow报错,再次修改protobuf
pip uninstall protobuf
pip install protobuf==3.19.0 -i https://pypi.douban.com/simple/
#修改tensorflow_hub版本
pip install tensorflow_hub==0.5.0 -i https://pypi.douban.com/simple/
pip install --upgrade tensorflow-hub -i https://pypi.douban.com/simple/
#修改tensorflow版本
pip uninstall tensorflow==2.6.0
conda activate nsfw
pip install tensorflow==2.4.0 -i https://pypi.douban.com/simple/
最后运行成功:
验证是否成功的方法:尝试导入tensorflow看是否报错,此前请忽略一些不必要的版本警告(d2l、matlib等)
1.报错:tensorflow某些库的函数缺失,或者库缺失如(tf.python.checkpoint)
如何查看库是否缺失:到envs/Lib\site-packages/tensorflow/* 查看
(重装后有了checkpoint,不知道死版本问题,还是安装出错问题)
我就是看到tf21有,到了tf26没有,才想着要改为tf24的
如果重装不彻底(可能有残余,建议新建虚拟环境,但我重装tf没问题)
2.不要耍小聪明把tf21有的包复制到tf26下,否则报另一个错误:
Duplicate registrations for type trackable_dict_wrapper
3.关于pycharm
pycharm也可以利用conda创建虚拟环境和安装包,但是有的需要管理员权限,另外还发现pycharm和vscode运行上述代码,报错有的还不一样。