PaddleHub是百度--飞桨预训练模型管理和迁移学习工具,通过PaddleHub开发者可以使用高质量的预训练模型结合Fine-tune API快速完成迁移学习到应用部署的全流程工作。
其官网地址:https://www.paddlepaddle.org.cn/hub
PaddleHub提供了飞桨生态下的高质量预训练模型,涵盖了图像分类、目标检测、词法分析、语义模型、情感分析、视频分类、图像生成、图像分割、文本审核、关键点检测等主流模型。
基于预训练模型,PaddleHub支持以下功能:
模型即软件,通过Python API或命令行实现快速预测,更方便地使用PaddlePaddle模型库。
迁移学习,用户通过Fine-tune API,只需要少量代码即可完成自然语言处理和计算机视觉场景的深度迁移学习。
服务化部署,简单一行命令即可搭建属于自己的模型的API服务。
超参优化,自动搜索最优超参,得到更好的模型效果
PaddleHub的安装:
pip install paddlehub
这里推荐大家用清华的镜像来安装:
pip install paddlehub==1.6.2 -i https://pypi.tuna.tsinghua.edu.cn/simple 目前推荐安装1.6.2版,比较稳定
如果您注册了AI studio,可以按照以下步骤来实现图片的生成,我们这里利用paddlehub自带的模型stylepro_artistic来实现一个图片生成项目
第一步:安装paddlehub然后利用hub下载我们需要的 stylepro_artistic模型
!pip install paddlehub==1.6.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
!hub install stylepro_artistic
第二步:导包
import paddlehub as hub
import cv2
import os
第三步:加载模型,生成图片
#删除上次生成的图片 (由于我们调参之后会产生新的图片,为了便于观察,我们先把前次的图片删除)
for files in os.listdir('transfer_result'):
if 'jpg' in files:
os.remove('transfer_result/{}'.format(files))
#加载模型并生成图片
mymodel = hub.Module(name='stylepro_artistic')
results = mymodel.style_transfer(images=[{
'content':cv2.imread('data/baobao.jpg'), #加载要处理的原图片
'styles':[cv2.imread('data/timg.jpg')]}], #加载风格图片
alpha = 1.5, #alpha参数用来设置生成的程度
visualization = True)
第四步:显示图片。 为了能较好观察对比结果,我们把图片排列起来显示。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as image
#显示matplotlib生成的图形
%matplotlib inline
src_image_path = 'data/baobao.jpg'
tye_image_path = 'data/timg.jpg'
for files in os.listdir('transfer_result'):
if 'jpg' in files:
ret_image_name = files
ret_image_path = 'transfer_result/{}'.format(ret_image_name)
src_img = image.imread(src_image_path)
tye_img = image.imread(tye_image_path)
ret_img = image.imread(ret_image_path)
plt.figure(figsize=(10,10))
plt.subplot(221)
plt.imshow(src_img)
plt.axis('off')
plt.subplot(222)
plt.imshow(tye_img)
plt.axis('off')
plt.subplot(212)
plt.imshow(ret_img)
plt.axis('off')
plt.show()
效果如图:(上左是原图,上右是待转换成的风格图,下图是转换结果效果图)
该项目的地址如下:
https://aistudio.baidu.com/aistudio/projectdetail/702436