Intro
本篇主要讲述笔者进行深度学习项目训练时的简单经验,重点为:
在Anaconda中搭建可使用的Tensorflow-GPU环境;
笔者进行简单训练的测试和成功步骤经验(新手向)(目前主要使用U-Net模型,后续可能有更多( ̄︶ ̄)↗ )
环境搭建
前注:
Tensorflow使用独显或集显GPU训练均需CUDA和cuDNN,若使用独显请确保驱动完备;
笔者在conda进行安装,很好用,推荐此环境(需先安装Anaconda,打开Anaconda Prompt即可);
网上教程很多,但其实可以没那么麻烦,跟着下面步骤一步一步来就没毛。
创建虚拟环境并激活(其中env可改成自己希望的环境名)
1
2conda create -n env python=3.10 -y
conda activate env
之后目录前应更变为你激活的环境名,如(env) C:\Users>
安装版本匹配的CUDA和cuDNN
1
conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0
过程中若询问是否继续,选择是(y)
若频繁卡顿出错,可选择清华镜像源下载:
1
2
3
4conda install cudatoolkit=11.2 cudnn=8.1.0 \
-c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main \
-c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free \
-c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge安装版本匹配的numpy
1
pip install numpy==1.26.4
安装版本匹配的Tensorflow
1
python -m pip install "tensorflow<2.11"
验证
1
2
3python -c "import tensorflow as tf; print('TF version:', tf.__version__)"
python -c "import tensorflow as tf; print('GPU Available:', tf.config.list_physical_devices('GPU'))"
python -c "import tensorflow as tf; print('Built with CUDA:', tf.test.is_built_with_cuda())"若输出类似:
TF version: 2.11.0
GPU Available: [PhysicalDevice(name=’/physical_device:GPU:0’, device_type=’GPU’)]
Built with CUDA: True则为成功。
后注:
- 若已有某些错误(如没删干净/没下完整),不必执着于删除再下载,直接创建新环境即可;
- 尽量选择网络通畅的环境运行,若下载CUDA/cuDNN/TF时耗时过长或频繁出错,很可能是网络问题。实测下载三样东西总耗时不超过10分钟;
- 配置环境时最大的问题其实是版本问题,具体可参考官方文档,指路从源代码构建 | TensorFlow
简易训练(VS Code based)
打开VS Code,创建python文件。
前置以下代码赋能TensorflowGPU训练:
1 | import os, h5py, numpy as np, tensorflow as tf, matplotlib.pyplot as plt |
之后写入自己的模型训练全过程即可,注意运行时选择我们刚刚搭建好的GPU支持的kernel,一般在右上角或运行时进行选择。若提示需下载kernel,下载即可。kernel名称即为我们自定义的env。
在此附上笔者项目思路:分为数据导入-模型训练-预测结果-画图分析四个步骤,笔者采用U-Net模型,代码如下:
1 | def unet(input_shape=(52, 36, 5), n_base=64): |
U-Net模型是一个下采样+上采样的过程,关键在于对于多通道数据提取多尺度特征。本代码中将最优模型存储以便后续测试。
训练过成输出样例:
92/92 - 10s - loss: 1.4912e-04 - mae: 0.0027 - val_loss: 1.7216e-04 - val_mae: 0.0028 - lr: 1.0000e-06 - 10s/epoch - 105ms/step Epoch 145/200
可看到损失、用时等信息。一般来说GPU训练时间远低于CPU,以笔者为例,CPU用时1-2min一轮,GPU仅用时10s。
训练完成后即可用生成的模型进行预测,示例代码:
1 | y_pred = model.predict(x_test, batch_size=64, verbose=1) |
最后保存预测结果并进行误差计算或画图分析即可φ(゜▽゜*)♪
笔者训练项目简单,只是基础的模型训练中的一种方法,以作参考,欢迎指正沟通(指路主页E-Mail~)