关于后端:基于ModelArts的动漫头像自动生成丨华为云至简致远

24次阅读

共计 4001 个字符,预计需要花费 11 分钟才能阅读完成。

援用
【摘要】ModelArts 是面向开发者的一站式 AI 开发平台,具备低门槛,高效率,高性能,易运维的特点。本文应用 ModelArts 平台主动生成动漫头像,包含模型训练、测试模型和展现生成的动漫头像。

ModelArts 简介第一步,点击链接进入 ACGAN- 动漫头像主动生成 的案例页面,并实现根底配置。第二步,下载模型和代码第三步,模型训练第四步,测试模型第五步,展现生成的图像 TipsModelArts 简介 ModelArts 是面向开发者的一站式 AI 开发平台,为机器学习与深度学习提供海量数据预处理及交互式智能标注、大规模分布式训练、自动化模型生成,及端 - 边 - 云模型按需部署能力,帮忙用户疾速创立和部署模型,治理全周期 AI 工作流。另外,ModelArts 具备低门槛,高效率,高性能,易运维的特点。即 ModelArts 可能开箱即用,零根底 3 步即可构建 AI 模型;AI 开发全流程可视化治理,生产效率百倍晋升,灵便反对多厂商多框架多功能模型对立纳管。第一步,点击链接进入 ACGAN- 动漫头像主动生成 的案例页面,并实现根底配置。https://developer.huaweicloud… 点击 Run in ModelArts,进入 JupyterLab 页面。

JupyterLab 页面:

配置以后运行环境,进行 规格切换。

抉择 [限时收费]GPU: 1*V100|CPU: 8 核 64GB,点击 切换规格。

切换中。

资源切换实现,点击 确定。

查看以后运行环境:
CPU:8 核
内存:64GB
GPU:nvidia-p100(32GB) * 1
架构:x86_64
规格:modelarts.vm.gpu.free
价格:限时收费

Select Kernel:TensorFlow-1.13.1

第二步,下载模型和代码抉择下方代码,点击运行。

运行实现。

第三步,模型训练别离运行以下三段代码:加载依赖库:root_path = ‘./ACGAN/’
os.chdir(root_path)
import os
from main import main
from ACGAN import ACGAN
from tools import checkFolder
import tensorflow as tf
import argparse
import numpy as np
配置参数:def parse_args():

note = "ACGAN Frame Constructed With Tensorflow"
parser = argparse.ArgumentParser(description=note)
parser.add_argument("--epoch",type=int,default=251,help="训练轮数")
parser.add_argument("--batchSize",type=int,default=64,help="batch 的大小")
parser.add_argument("--codeSize",type=int,default=62,help="输出编码向量的维度")
parser.add_argument("--checkpointDir",type=str,default="./checkpoint",help="检查点保留目录")
parser.add_argument("--resultDir",type=str,default="./result",help="训练过程中,两头生成后果的目录")
parser.add_argument("--logDir",type=str,default="./log",help="训练日志目录")
parser.add_argument("--mode",type=str,default="train",help="模式:train / infer")
parser.add_argument("--hairStyle",type=str,default="orange hair",help="你想要生成的动漫头像的头发色彩")
parser.add_argument("--eyeStyle",type=str,default="gray eyes",help="你想要生成的动漫头像的眼睛色彩")
parser.add_argument("--dataSource",type=str,default='./extra_data/images/',help="训练集门路")
args, unknown= parser.parse_known_args()
checkFolder(args.checkpointDir)
checkFolder(args.resultDir)
checkFolder(args.logDir)
assert args.epoch>=1
assert args.batchSize>=1
assert args.codeSize>=1
return args

args =parse_args()
开始训练:with tf.Session() as sess :

myGAN = ACGAN(sess,args.epoch,args.batchSize,args.codeSize,\
    args.dataSource,args.checkpointDir,args.resultDir,args.logDir,args.mode,\
        64,64,3)
if myGAN is None:
    print("创立 GAN 网络失败")
    exit(0)

if args.mode=='train' :
    myGAN.buildNet()
    print("进入训练模式")
    myGAN.train()
    print("Done")

训练完结后运行后果:

第四步,测试模型批改参数从训练模式为推理模式 args.mode =’infer’
头发和眼睛抉择 hair_dict = [‘orange hair’, ‘white hair’, ‘aqua hair’, ‘gray hair’, ‘green hair’, ‘red hair’, ‘purple hair’,

        'pink hair', 'blue hair', 'black hair', 'brown hair', 'blonde hair']

eye_dict = [‘gray eyes’, ‘black eyes’, ‘orange eyes’, ‘pink eyes’, ‘yellow eyes’,

        'aqua eyes', 'purple eyes', 'green eyes', 'brown eyes', 'red eyes', 'blue eyes']

抉择了黑头发和蓝眼睛

args.hairStyle = ‘black hair’
args.eyeStyle = ‘blue eyes’
结构预测器 tf.reset_default_graph()
with tf.Session() as sess :

myGAN1 = ACGAN(sess,args.epoch,args.batchSize,args.codeSize,\
    args.dataSource,args.checkpointDir,args.resultDir,args.logDir,args.mode,\
        64,64,3)
if myGAN1 is None:
    print("创立 GAN 网络失败")
    exit(0)
if args.mode=='infer' :
    myGAN1.buildForInfer()
    tag_dict = ['orange hair', 'white hair', 'aqua hair', 'gray hair', 'green hair', 'red hair', 'purple hair', 'pink hair', 'blue hair', 'black hair', 
                'brown hair', 'blonde hair','gray eyes', 'black eyes', 'orange eyes', 'pink eyes', 'yellow eyes','aqua eyes', 'purple eyes', 'green eyes',
                'brown eyes', 'red eyes','blue eyes']
    tag = np.zeros((64,23))
    feature = args.hairStyle+"AND"+ args.eyeStyle
    for j in range(25):
        for i in range(len(tag_dict)):
            if tag_dict[i] in feature:
                tag[j][i] = 1
    myGAN1.infer(tag,feature)
    print("Generate :"+feature)

第五步,展现生成的图像 import matplotlib.pyplot as plt
from PIL import Image

feature = args.hairStyle+” AND “+ args.eyeStyle
resultPath = ‘./samples/’ + feature + ‘.png’ #确定保留门路
img = Image.open(resultPath).convert(‘RGB’)
plt.figure(1)
plt.imshow(img)
plt.show()
最终生成的动漫头像如下图所示:

Tips 能够通过批改头像的头发和眼睛来扭转最终生成的动漫头像。相应代码的地位:

——END——参考文献 https://developer.huaweicloud…【华为云至简致远】有奖征文炽热进行中:https://bbs.huaweicloud.com/b…【版权申明】本文为华为云社区用户原创内容,转载时必须标注文章的起源(华为云社区),文章链接,文章作者等根本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌剽窃的内容,欢送发送邮件至:cloudbbs@huaweicloud.com 进行举报,并提供相干证据,一经查实,本社区将立即删除涉嫌侵权内容。

正文完
 0