pix2pix-tensorflow搭建及其使用
pix2pix-tensorflow搭建过程
对抗神经网络
1. 环境搭建
参考:https://www.cnblogs.com/pprp/p/9463974.html
官方详细介绍:https://affinelayer.com/pix2pix/
这篇博客中详细介绍了如何搭建tensorflow环境
2. 环境说明
- 基于tensorflow1.4.1
- 建议采用 Tensorflow-gpu + cuDNN
3. 开始搭建
# clone this repo
git clone https://github.com/affinelayer/pix2pix-tensorflow.git
cd pix2pix-tensorflow
# download the CMP Facades dataset (generated from http://cmp.felk.cvut.cz/~tylecr1/facade/) 下载数据集
python tools/download-dataset.py facades
# 训练数据
python pix2pix.py \
--mode train \ # 设置mode为训练模式
--output_dir facades_train \ # 输出地址
--max_epochs 200 \ # 最大神经元熟练
--input_dir facades/train \ # 输入训练集所在地址
--which_direction BtoA # 方向
# 测试模型
python pix2pix.py \
--mode test \ #设置测试模式
--output_dir facades_test \ # 输出地址
--input_dir facades/val \ # 输入地址
--checkpoint facades_train # 检查点保存
4. 训练结果说明
测试结果:
facades_train
├── checkpoint
├── events.out.tfevents.1534087226.learner-pc
├── events.out.tfevents.1534126535.learner-pc
├── graph.pbtxt
├── model-80000.data-00000-of-00001
├── model-80000.index
├── model-80000.meta
└── options.json
其中facades_train记录的是检查点checkpoint
facades_test
├── events.out.tfevents.1534229330.learner-pc
├── graph.pbtxt
├── images
│ ├── 1-inputs.png ....
│ └── 1-targets.png ....
├── index.html
└── options.json
其中facades_test记录的是训练的结果,可以打开index.html进行查看具体的内容
5. 数据集
5.1 图片格式说明
你需要制作图片A,B,然后合成一张图片,作为一个训练图片。
其他数据集请见https://github.com/pprp/pix2pix-tensorflow
5.2 创建自己的数据集
示意图:
# Resize source images, 如上图,进行resize
python tools/process.py \
--input_dir photos/original \
--operation resize \
--output_dir photos/resized
# Create images with blank centers # 如上图,创建空白
python tools/process.py \
--input_dir photos/resized \
--operation blank \
--output_dir photos/blank
# Combine resized images with blanked images # 结合两张图片
python tools/process.py \
--input_dir photos/resized \
--b_dir photos/blank \
--operation combine \
--output_dir photos/combined
# Split into train/val set # 将图片进行分配
python tools/split.py \
--dir photos/combined
5.3 从先用图片创建图像对
如果您有两个目录,a
并且b
具有相应的图像(相同的名称,相同的尺寸,不同的数据),您可以将它们与process.py
:
python tools/process.py \
--input_dir a \
--b_dir b \
--operation combine \
--output_dir c
这使得图像成为pix2pix.py
期望的并排组合图像。
5.4 如何进行着色
对于着色,理想情况下,您的图像应具有相同的宽高比。您可以使用resize命令调整大小并裁剪它们:
python tools/process.py \
--input_dir photos/original \
--operation resize \
--output_dir photos/resized
不需要其他处理,着色模式(参见下面的训练部分)使用单个图像而不是图像对。
6. 训练
6.1 图片对
由于图片是成对的,你可以决定图片的方向是AtoB
or BtoA
以maps数据集为例:
python pix2pix.py \
--mode train \
--output_dir maps_train \
--max_epochs 200 \
--input_dir maps/train \
--which_direction BtoA
6.2 上色
pix2pix.py
包括使用单个图像而不是成对处理着色的特殊代码,使用如下所示:
python pix2pix.py \ --mode
train \
--output_dir photos_train \
--max_epochs 200 \
--input_dir photos / train \
--lab_colorization
在该模式中,图像A是黑白图像(仅亮度),图像B包含该图像的颜色通道(没有亮度信息)。
提示
您可以使用tensorboard查看损失和计算图:
tensorboard --logdir = facades_train
如果您希望在网络培训时编写正在进行的图片,请使用--display_freq 50
。这将facades_train/index.html
使用当前的训练输入和输出更新每50个步骤。
7. 测试
测试完成--mode test
。您应该指定要使用的检查点--checkpoint
,这应该指向output_dir
您之前创建的--mode train
以maps数据集为例:
python pix2pix.py \
--mode test \
--output_dir maps_test \
--input_dir maps/val \
checkpoint maps_train
测试模式将从提供的检查点加载一些配置选项,因此您无需指定which_direction
实例。
测试运行将输出一个HTML文件facades_test/index.html
,显示输入/输出/目标图像集
8. Code Validation
Validation of the code was performed on a Linux machine with a ~1.3 TFLOPS Nvidia GTX 750 Ti GPU and an Azure NC6 instance with a K80 GPU.
git clone https://github.com/affinelayer/pix2pix-tensorflow.git
cd pix2pix-tensorflow
python tools/download-dataset.py facades
sudo nvidia-docker run \
--volume $PWD:/prj \
--workdir /prj \
--env PYTHONUNBUFFERED=x \
affinelayer/pix2pix-tensorflow \
python pix2pix.py \
--mode train \
--output_dir facades_train \
--max_epochs 200 \
--input_dir facades/train \
--which_direction BtoA
sudo nvidia-docker run \
--volume $PWD:/prj \
--workdir /prj \
--env PYTHONUNBUFFERED=x \
affinelayer/pix2pix-tensorflow \
python pix2pix.py \
--mode test \
--output_dir facades_test \
--input_dir facades/val \
--checkpoint facades_train
nvidia-docker可以参看之前的文章进行安装
9. 参考文献
主要是官方给出的说明:references
pix2pix-tensorflow搭建及其使用的更多相关文章
- (转)一文学会用 Tensorflow 搭建神经网络
一文学会用 Tensorflow 搭建神经网络 本文转自:http://www.jianshu.com/p/e112012a4b2d 字数2259 阅读3168 评论8 喜欢11 cs224d-Day ...
- [DL学习笔记]从人工神经网络到卷积神经网络_3_使用tensorflow搭建CNN来分类not_MNIST数据(有一些问题)
3:用tensorflow搭个神经网络出来 为什么用tensorflow呢,应为谷歌是亲爹啊,虽然有些人说caffe更适合图像啊mxnet效率更高等等,但爸爸就是爸爸,Android都能那么火,一个道 ...
- 用Tensorflow搭建神经网络的一般步骤
用Tensorflow搭建神经网络的一般步骤如下: ① 导入模块 ② 创建模型变量和占位符 ③ 建立模型 ④ 定义loss函数 ⑤ 定义优化器(optimizer), 使 loss 达到最小 ⑥ 引入 ...
- 一文学会用 Tensorflow 搭建神经网络
http://www.jianshu.com/p/e112012a4b2d 本文是学习这个视频课程系列的笔记,课程链接是 youtube 上的,讲的很好,浅显易懂,入门首选, 而且在github有代码 ...
- 使用Tensorflow搭建回归预测模型之一:环境安装
方法1:快速包安装 一.安装Anaconda 1.官网地址:https://www.anaconda.com/distribution/,选择其中一个版本下载即可,最好安装3.7版本,因为2.7版本2 ...
- 使用Tensorflow搭建回归预测模型之二:数据准备与预处理
前言: 在前一篇中,已经搭建好了Tensorflow环境,本文将介绍如何准备数据与预处理数据. 正文: 在机器学习中,数据是非常关键的一个环节,在模型训练前对数据进行准备也预处理是非常必要的. 一.数 ...
- 用tensorflow搭建RNN(LSTM)进行MNIST 手写数字辨识
用tensorflow搭建RNN(LSTM)进行MNIST 手写数字辨识 循环神经网络RNN相比传统的神经网络在处理序列化数据时更有优势,因为RNN能够将加入上(下)文信息进行考虑.一个简单的RNN如 ...
- 用TensorFlow搭建一个万能的神经网络框架(持续更新)
我一直觉得TensorFlow的深度神经网络代码非常困难且繁琐,对TensorFlow搭建模型也十分困惑,所以我近期阅读了大量的神经网络代码,终于找到了搭建神经网络的规律,各位要是觉得我的文章对你有帮 ...
- 使用tensorflow搭建自己的验证码识别系统
目录 准备验证码数据 保存为tfrecords文件 验证码训练 学习tensorflow有一段时间了,想做点东西来练一下手.为了更有意思点,下面将搭建一个简单的验证码识别系统. 准备验证码数据 下面将 ...
- Tensorflow搭建卷积神经网络识别手写英语字母
更新记录: 2018年2月5日 初始文章版本 近几天需要进行英语手写体识别,查阅了很多资料,但是大多数资料都是针对MNIST数据集的,并且主要识别手写数字.为了满足实际的英文手写识别需求,需要从训练集 ...
随机推荐
- CCNP
CCNP全称是:Cisco Certified Network Professional——思科认证网络高级工程师.CCNP专业人员表示通过认证的人员具有丰富的网络知识.获得CCNP认证的专业人员可以 ...
- COGS 1224. [SHOI2002]百事世界杯之旅(期望概率)
COGS 1224. [SHOI2002]百事世界杯之旅 ★ 输入文件:pepsi.in 输出文件:pepsi.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] ...
- C#的命令行工具
在最开始学java的时候我们一般用 记事本 + 命令行,在命令行里边进行编译和运行, C#也有类似的东西(csc工具),在学习C#语言的时候可以用 文本编辑器来编写代码,然后用C#的命令行工具来编译 ...
- HDCMS导航高亮显示!解决办法
第一种方法:(传递class) <channel type='top' row='8' class='cur' > <li class='{$field.class}'> &l ...
- 8.ajax查询数据
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- CSS Spritec下载,精灵图,雪碧图,初探之原理、使用
CSS Spritec下载,精灵图,雪碧图,初探之原理.使用 关于CSS Sprite CSSSprites在国内很多人叫css精灵雪碧图,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零 ...
- 系统中同时有 python2和 python3,怎么让 ipython 选择不同的版本启动?
已经安装的情况下: > which ipython /usr/local/bin/ipython > cat /usr/local/bin/ipython #!/usr/local/op ...
- Python开发【模块】:BeautifulSoup
BeautifulSoup BeautifulSoup是一个模块,该模块用于接收一个HTML或XML字符串,然后将其进行格式化,之后遍可以使用他提供的方法进行快速查找指定元素,从而使得在HTML或XM ...
- Mybatis的WHERE和IF动态
mapper.xml: <!--查询套餐产品 --> <select id="queryComboProducts" resultType="com.r ...
- Linux下tomcat启动项目原因排查
先停掉tomcat服务器: 然后把文件删除: 这时候启动服务器: 看下有没有启动成功: 接着把重新优化过的代码用X ftp传上去. 等几分钟就可以. 如果老是出现问题,就去catalina.out文件 ...