整体流程
docker容器内搭建合适环境 -> 开启jupyter notebook -> 浏览器里敲数据增强操作代码 ->可视化
搭建环境
参考博客 https://segmentfault.com/a/1190000007448177
1. 启动容器
2. 安装 openssh-server:
apt-get install openssh-server
3. 编辑配置文件 /etc/ssh/sshd_config,注释掉配置文件中的"PermitRootLogin without-password",再增加一句"PermitRootLogin yes"使得root用户可以远程登录。
4. 将这个容器commit生成一个新镜像
5. 根据新镜像启动新容器,加上端口映射,例如:
docker run --rm -it -p 7777:8888 --name jupyter-notebook ubuntu:14.04-sshd bash
6. 容器中安装jupyter notebook
#更新apt-get环境
apt-get update
#安装python dev包
apt-get install python-dev
#安装jupyter
pip install jupyter
7. jupyter配置:先用ipython设置密码,再修改配置文件
#生成jupyter配置文件,这个会生成配置文件.jupyter/jupyter_notebook_config.py
jupyter notebook --generate-config
#使用ipython生成密码
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:38a5ecdf288b:c82dace8d3c7a212ec0bd49bbb99c9af3bae076e'
#去配置文件.jupyter/jupyter_notebook_config.py中修改以下参数
c.NotebookApp.ip='*' #绑定所有地址
c.NotebookApp.password = u'上述生成的长密码'
c.NotebookApp.open_browser = False #启动后是否在浏览器中自动打开
c.NotebookApp.port =8888 #指定一个访问端口,默认8888,注意和映射的docker端口对应
8. 到此搭建环境工作就完成了
运行jupyter notebook对数据增强操作可视化
1. 容器命令行,先cd到指定路径,再开启jupyter notebook
jupyter notebook --allow-root
2. 打开浏览器,输入数据增强代码
import torch
import numpy as np
import matplotlib.pyplot as plt
from torchvision import transforms
from torchvision.datasets.folder import default_loader
img_path = '/test/XXX.jpg'
x=default_loader(img_path)
# 测试RandAugment
from RandAugmentcrx import RandAugment
normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
transform = transforms.Compose([
transforms.RandomHorizontalFlip(0.5),
transforms.RandomRotation(20),
transforms.ToTensor(),
normalize])
transform.transforms.insert(0, RandAugment(1, 9))
plt.figure(figsize=(80, 80))
for k in range(40):
# print(k)v
img = transform(x)
img=img.numpy().transpose((1,2,0))
plt.subplot(8, 5,k+1)
plt.imshow(img)
运行
就可以看到数据增强效果。