pytorch官网:https://pytorch.apachecn.org/#/
conda
conda官网:https://anaconda.org/anaconda/conda
conda command reference:https://conda.io/projects/conda/en/latest/commands.html
Anaconda 就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。
# conda create:Create a new conda environment from a list of specified packages.
conda create -n pytorch python=3.6
# conda active:指定名称,激活环境
conda activate pytorch
# 退出环境
conda deactivate
# conda 查看环境
conda info -envs
深度学习
1. 神经网络构建过程
- 准备数据集
- 构建模型
- 训练模型
- 保存模型
- 模型评估
2. GPU使用
GPU训练
模型、数据、损失函数
'''GPU训练方法1'''
import torch.cuda
# 判断是否可用
if torch.cuda.is_available():
model.model.cuda()
floss = floss.cuda()
imgs = imgs.cuda()
targets = targets.cuda()
####################################################
'''GPU训练方法2'''
import torch
# 定义训练的设备
# cpu
device = torch.device("cpu")
# 单显卡: "cuda" or "cuda:0"
device = torch.device("cuda")
device = torch.device("cuda:0")
model = model.to(device)
floss = floss.to(device)
imgs = imgs.to(device)
targets = targets.to(device)
GPU使用率
# 查看GPU使用情况
nvidia-smi
提高GPU使用率思路:
GPU 利用率低常见原因分析及优化
深度学习模型训练提高GPU利用率的几个想法
3. tensorboard 使用
from torch.utils.tensorboard import SummaryWriter
# 实时监控 使用命令"tensorboard --logdir=logs"进行查看
writer = SummaryWriter("./logs/")
# 添加监控
writer.add_image(...)
writer.add_scalar(...)
# 训练结束关闭监控
writer.close()
一些问题
well-posed问题 和 ill-posed问题
适定性问题(Well-posed Problem)
1. 解是存在的
2. 解是唯一的
3. 解能根据初始条件连续变化,不会发生跳变,即解必须稳定
不适定问题(ill-posed Problem):上述三个条件中只要有一个不满足,则为不适定问题。
典型的图像不适定问题包括:图像去噪、图像恢复、图像放大、图像修补、图像去马赛克、图像超分等。
神经网络
全连接层
全连接层(Fully Connection): FC层在keras中叫做Dense层,在pytorch中为Linear层
局部响应归一化 LRN
局部响应归一化(Local Response Normalization)
https://blog.csdn.net/qq_27825451/article/details/88745034
激活函数
Sigmoid 的输出为伯努利分布(二项分布), Softmax的输出表示为多项式分布。所以 Sigmoid 通常用于二分类,Softmax用于多类别分类。
损失函数
BCELoss : BCE(Binary Cross Entropy)损失函数,衡量目标和输出之间的二进制交叉熵的标准
BCEWithLogitsLoss : 在BECLoss上加了个logits函数(sigmoid函数)
MSELoss :
缺点:过于平滑,缺少细节,真实感不强
PSNR基于MSE