动手实践——docker中利用jupyter对数据增强操作进行可视化

整体流程

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)

运行

就可以看到数据增强效果。

猜你喜欢

转载自blog.csdn.net/s000da/article/details/115013548
今日推荐