tensorflow深度学习实战代码(机器学习TensorFlow实现智能鉴黄)(1)

架构

tensorflow深度学习实战代码(机器学习TensorFlow实现智能鉴黄)(2)

如图,先聊一下图床的架构:

工具

训练模型

训练之前,先介绍一个名词 NSFW,之前我也不知道啥意思,毕竟是村里来的,什么泷泽萝拉、松岛枫、小泽玛利亚、吉泽明步、波多野结衣、天海翼、樱井莉亚、饭岛爱、苍井空、麻生希、橘梨纱、武藤兰、泽井芽衣.....是一概不知道的。

NSFW:不适合在工作场合出现的内容(英语:Not Safe/Suitable For Work,缩写:NSFW)是一个网络用语,多指裸露、暴力、色情或冒犯等不适宜公众场合的内容。在给出含有上述内容的超链接旁标注 NSFW,用于警告观看者。

在 nsfw_data_scraper上传存放了成千上万张图片地址,并对图片进行了分类,以供训练:

  • 绘画(Drawing),无害的艺术,或艺术绘画;
  • 变态(Hentai),色情艺术,不适合大多数工作环境;
  • 中立(Neutral),一般,无害的内容;
  • 色情(Porn),不雅的内容和行为,通常涉及生殖器;
  • 性感(Sexy),不合时宜的挑衅内容。

同时,官方也提供了收集方法:

$ docker build . -t docker_nsfw_data_scraper

Sending build context to Docker daemon 426.3MB

Step 1/3 : FROM ubuntu:18.04

---> 775349758637

Step 2/3 : RUN apt update && apt upgrade -y && apt install wget rsync imagemagick default-jre -y

---> Using cache

---> b2129908e7e2

Step 3/3 : ENTRYPOINT ["/bin/bash"]

---> Using cache

---> d32c5ae5235b

Successfully built d32c5ae5235b

Successfully tagged docker_nsfw_data_scraper:latest

$ # Next command might run for several hours. It is recommended to leave it overnight

$ docker run -v $(pwd):/root docker_nsfw_data_scraper /root/scripts/runall.sh

Getting images for class: neutral

...

...

$ ls data

test train

$ ls data/train/

drawings hentai neutral porn sexy

$ ls data/test/

drawings hentai neutral porn sexy

如何训练模型,后面也很贴心的附上了训练方法,不过这里借用了 TensorFlow 的 ResNet 的模型,稍作修改。训练过程太过煎熬、痛苦,已经被湮灭在有限的带宽和无尽的小黄图中。

鉴黄服务

模型数据训练好以后就是搭建服务了,这里我们直接使用TensorFlow 的 TensorFlow-serving 对外提供服务,为了安装方便,我们使用Docker安装部署。

NSFWDATA="/home/nsfw"

docker run -d --rm -p 8501:8501 \

--name nsfw \

-v "$NSFWDATA/models:/models/nsfw" \

-e MODEL_NAME=nsfw \

tensorflow/serving

serving 镜像提供了两种调用方式:gRPC和HTTP请求。gRPC默认端口是8500,HTTP请求的默认端口是8501,serving镜像中的程序会自动加载镜像内/models下的模型,通过MODEL_NAME指定/models下的哪个模型。

HTTP调用API地址:http://ip:port/v1/models/nsfw:predict

接口返回参数:

{

"classes": "porn",

"probabilities": {

"drawings": 0.0000170060648,

"hentai": 0.00108581863,

"neutral": 0.000101140722,

"porn": 0.816358209,

"sexy": 0.182437778

}

}

图床服务

完事具备,只欠图床,恰好,最近新域名也备案成功了,那就赶紧上线吧。麻溜的开始小范围内测,内测期间各位小伙伴可以多多踢出宝贵意见,2019年12月31日内测结束将清空所有数据,请悉知!

tensorflow深度学习实战代码(机器学习TensorFlow实现智能鉴黄)(3)

tensorflow深度学习实战代码(机器学习TensorFlow实现智能鉴黄)(4)

码农三哥,一名普通程序员,会点Java软件开发,对AI人工智能有点兴趣,后续会每日分享些关于互联网技术方面的文章,感兴趣的朋友可以关注我,一起交流学习。

想转型或刚步入程序员Java开发的朋友,有问题可以留言或私信我!

,