当前位置: 首页 > news >正文

docker复现pytorch_cyclegan

1、安装docker

  • 配置docker镜像
    添加镜像源至docker engine

2、wsl2安装nvidia-docker

要在Ubuntu中安装NVIDIA Docker,需要满足以下条件:

  • 确保主机已安装NVIDIA的CUDA驱动程序,并使用适用于您操作系统的正确版本。
wsl --update

在Ubuntu中安装NVIDIA Docker的步骤如下:

  1. 确认系统已安装并正常工作Docker。如果未安装Docker,请先进行安装。
  2. 在终端中,运行以下命令添加NVIDIA Docker的apt仓库密钥:
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
  1. 添加apt仓库。创建一个新的apt源文件,并将"main"和"stable"组件添加到文件中:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
  1. 更新apt缓存并安装nvidia-docker2包:
sudo apt-get update
sudo apt-get install -y nvidia-docker2
  1. 安装完成后,重启Docker服务:
sudo systemctl restart docker
  1. 使用以下命令检查是否正确安装了nvidia-docker2:
docker run --gpus all nvidia/cuda:11.0-base nvidia-smi

运行此命令应该成功运行容器内的nvidia-smi命令,并显示GPU信息。如果一切正常,说明成功在Ubuntu中安装了NVIDIA Docker。

3、复现pytorch_cyclegan

(1) 构建DockerFile文件,写入语句

FROM nvidia/cuda:11.1.1-cudnn8-runtimeRUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub# 更新apt索引并安装所需工具
RUN apt update && apt install -y wget unzip curl bzip2 git
RUN curl -LO http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.shRUN bash Miniconda3-latest-Linux-x86_64.sh -p /miniconda -b
RUN rm Miniconda3-latest-Linux-x86_64.sh
ENV PATH=/miniconda/bin:${PATH}
RUN conda update -y conda# 创建新的conda环境并安装特定版本的pytorch和torchvision
RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
RUN conda config --set show_channel_urls yes# 设置环境变量
ENV PATH="/opt/conda/bin:$PATH"
# RUN /opt/conda/bin/conda run -n cycle pip install torch==1.10.0+cu111 torchvision==0.11.0+cu111 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html 
# 激活环境并安装其他依赖
RUN mkdir /workspace/ && cd /workspace/ && git clone https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix.git \&& cd pytorch-CycleGAN-and-pix2pix# 设置工作目录
WORKDIR /workspace

(2)存放至目录下便于构建

app
├── app/Dockerfile
├── app/app.py
└── app/requirements.txt

(3)运行命令构建镜像
进入app目录,

docker build -t [镜像名] .
# 假设我们有一个名为 my-base-image:latest 的本地镜像
docker build --build-arg BASE_IMAGE=my-base-image:latest -t my-app .

(4)根据镜像建立容器,在容器中安装对应的包

docker run -it --name [容器名] [镜像名] /bin/bash

待选步骤:
(5)安装包之后构建好了新的容器,commit提交存至新的镜像

docker commit -m "xx" [容器名] [镜像名]

(6)后面只需直接拉取镜像,并创建容器,就可直接运行

docker run --gpus all -it --name [容器名] [镜像名] /bin/bash
# 部分docker语句记录
docker run --gpus all -it --name yolov8_mount -v E:\BaiduNetdiskDownload\VOC07+12+test\VOCdevkit:/root/yolov8-pytorch/ --cpus="2.0" 7c69963d2d79:latest bashdocker run --gpus all -it --name yolov8_mount -v E:\BaiduNetdiskDownload\VOC07+12+test\VOCdevkit:/root/yolov8-pytorch/ --cpuset-cpus="0,1" 7c69963d2d79:latest bash

4、 已构建好的镜像参考

docker pull lin0011/cyclegan

参考链接:
1、【K8S】docker打过tag标签后向镜像仓库推送镜像(push)
https://blog.csdn.net/m0_45406092/article/details/103963974
2、Index of /compute/cuda/repos/ubuntu2004/x86_64
https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/
3、nvidia/cuda:11.1.1-cudnn8-runtime
https://hub.docker.com/r/nvidia/cuda/tags?ordering=-last_updated
4、docker:machine learning
https://hub.docker.com/search?categories=Machine+Learning+%26+AI&page=3
5、CUDA Toolkit 11.1 Update 1 Downloads
https://developer.nvidia.com/cuda-11.1.1-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=2004&target_type=debnetwork
6、官方源码:
https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix.git
7、如何指定dockerfile中From后的基础镜像从本地获取https://blog.csdn.net/muwan2900/article/details/139737060?spm=1001.2014.3001.5506
8、极智开发 | gpu docker启动报错libnvidia-ml.so.1: file exists: unknown
https://zhuanlan.zhihu.com/p/652588664
9、Visual Studio 的粘滞滚动功能是什么?
https://learn.microsoft.com/zh-cn/visualstudio/ide/editor-sticky-scroll?view=vs-2022

http://www.lryc.cn/news/475504.html

相关文章:

  • IDEA2024下安装kubernetes插件并配置进行使用
  • 理解原子变量之二:从volatile到内存序-进一步的认识
  • DICOM标准:MR图像模块属性详解——磁共振成像(MR)在DICOM中的应用
  • Linux内核与用户空间
  • 计算机网络-以太网小结
  • 找树根和孩子c++
  • 植物源UDP-糖基转移酶及其分子改造-文献精读75
  • Redis中String 的底层实现是什么?
  • 像mysql一样查询es
  • SpringBoot中@Validated或@Valid注解校验的使用
  • HashMap为什么线程不安全?
  • 类加载器及反射
  • aws boto3 下载文件
  • 3DDFA-V3——基于人脸分割几何信息指导下的三维人脸重建
  • 求串长(不使用任何字符串库函数)
  • 第02章 MySQL环境搭建
  • linux系统编程 man查看manual.stat
  • 从网络到缓存:在Android中高效管理图片加载
  • 【数据结构】链表详解:数据节点的链接原理
  • 使用AWS Redshift从AWS MSK中读取数据
  • 从0开始学统计-数据类别与测量层次
  • 使用AIM对SAP PO核心指标的自动化巡检监控
  • C++——unordered_map和unordered_set的封装
  • 微信小程序scroll-view吸顶css样式化表格的表头及iOS上下滑动表头的颜色覆盖、z-index应用及性能分析
  • 【高中数学】数列
  • 数字媒体技术基础:AMF(ACES 元数据文件 )
  • Apache Dubbo (RPC框架)
  • LeetCode 3226. 使两个整数相等的位更改次数
  • 面试经典 150 题:189、383
  • Python模拟真人动态生成鼠标滑动路径