Linux基础使用3-文件压缩、解压和搜索
Linux基础使用3-文件压缩、解压和搜索
文件压缩和解压
常用命令
tar
解包:tar zxvf filename.tar打包:tar zcvf filename.tar dirname
注意czvf和zcvf是没有区别的,tar打包命令的参数位置可以随意变换。
gz命令
解压1:gunzip filename.gz解压2:gzip -d filename.gz压缩:gzip filename
.tar.gz 和 .tgz
解压:tar zxvf filename.tar.gz压缩:tar **zc**vf filename.tar.gz dirname压缩多个文件:tar zcvf filename.tar.gz dirname1 dirname2 dirname3.....
bz2命令
解压1:bzip2 -d filename.bz2解压2:bunzip2 filename.bz2压缩:bzip2 -z filename
.tar.bz2
解压:tar jxvf filename.tar.bz2压缩:tar jcvf filename.tar.bz ...
Pytorch与视觉竞赛入门2.2-PyTorch常见的损失函数和优化器使用
Pytorch与视觉竞赛入门2.2-PyTorch常见的损失函数和优化器使用
PyTorch常见的损失函数和优化器使用
损失函数
损失函数
第三章 PyTorch的主要组成模块/3.5 损失函数.md
torch.nn-loss function
如何选择loss function
参考:深度学习中常见的激活函数与损失函数的选择与介绍
问题类型
最后一层激活函数
损失函数
二分类问题
sigmoid
binary_crossentropy
多分类、单标签问题
softmax
categorical_crossentropy
多分类、多标签问题
sigmoid
binary_crossentropy
回归到任意值
无
mse
回归到 0~1 范围内的值
sigmoid
mse 或 binary_crossentropy
优化器
参考:TORCH.OPTIM
实操
回归任务选MSEloss,选用Adam优化器,用ExponentialLR(每个 epoch 用 ...
Pytorch与深度学习自查手册5-损失函数、优化器
Pytorch与深度学习自查手册5-损失函数、优化器
损失函数
可以直接使用官方自带的损失函数,也可以自定义损失函数。
自定义损失函数
包括两种形式:
直接以函数形式定义
当作模型的一层,通过继承nn.Module定义(推荐)
直接以函数形式定义
def my_loss(output, target): loss = torch.mean((output - target)**2) return loss
(推荐)当作模型的一层,通过继承nn.Module定义
import torch.nn as nnclass DiceLoss(nn.Module): def __init__(): super(DiceLoss,self).__init__() def forward(): inputs = F.sigmoid(inputs) inputs = inputs.view(-1) targets = targets.view(-1) intersect ...
Pytorch与视觉竞赛入门2.1-PyTorch激活函数原理和使用
Pytorch与视觉竞赛入门2.1-PyTorch激活函数原理和使用
PyTorch激活函数原理和使用
参考资料:GELU 激活函数
Pytorch激活函数及优缺点比较
torch.nn.GELU
\[
GELU(x)=xP(X<=x)=xΦ(x)
\]
这里$Φ ( x ) \(是正太分布的概率函数,可以简单采用正太分布\)N ( 0 , 1 )\(要,或者使用参数化的正太分布\)N ( μ , σ )$ ,然后通过训练得到\(μ\)。
对于假设为标准正太分布的\(GELU(x)\),论文中提供了近似计算的数学公式,如下: \[
GELU(x) = 0.5x(1+tanh[\sqrt{2/\pi}(x+0.044715x^3)])
\] bert源码给出的GELU代码pytorch版本表示如下:
def gelu(input_tensor): cdf = 0.5 * (1.0 + torch.erf(input_tensor / torch.sqrt(2.0))) return input_tesnsor*cdf
\[
erf(x)= \frac{2 ...
Pytorch与深度学习自查手册4-训练、可视化、日志输出、保存模型
Pytorch与深度学习自查手册4-训练、可视化、日志输出、保存模型
训练和验证(包含可视化、日志、保存模型)
初始化模型、dataloader都完善以后,正式进入训练部分。
训练部分包括:
及时的日志记录
tensorboard可视化log
输入
前向传播
loss计算
反向传播
权重更新
固定步骤进行验证
最佳模型的保存(+bad case输出)
日志记录
利用logging模块在控制台实时打印并及时记录运行日志。
from config import *import logging # 引入logging模块import os.pathclass Logger: def __init__(self,mode='w'): # 第一步,创建一个logger self.logger = logging.getLogger() self.logger.setLevel(logging.INFO) # Log等级总开关 # 第二步,创建一个handler,用于写入日 ...
Pytorch与深度学习自查手册3-模型定义
Pytorch与深度学习自查手册3-模型定义
定义神经网络
继承nn.Module类;
初始化函数__init__:网络层设计;
forward函数:模型运行逻辑。
class NeuralNetwork(nn.Module): def __init__(self): super(NeuralNetwork, self).__init__() self.flatten = nn.Flatten() self.linear_relu_stack = nn.Sequential( nn.Linear(28*28, 512), nn.ReLU(), nn.Linear(512, 512), nn.ReLU(), nn.Linear(512, 10), ) def forward(self, x): x = self.flatten(x) logits = self.lin ...
Pytorch与视觉竞赛入门1-网络层原理和使用
Pytorch与视觉竞赛入门1-网络层原理和使用
Pytorch全连接层原理和使用
参考资料:PyTorch快速入门教程二(线性回归以及logistic回归)
Pytorch全连接网络
矩阵乘法实现全连接层
方法1:矩阵乘法
x = torch.arange(0, 100, 0.01,dtype=torch.float32)y = (10 * x + 5 + np.random.normal(0, 1, x.size())).float()batch_size = 100w = torch.randn((1,), requires_grad=True,dtype=torch.float32)b = torch.randn((1,), requires_grad=True,dtype=torch.float32)loss = nn.MSELoss()iter_time = x.size()[0]//batch_sizeoptimizer = torch.optim.Adam([w,b], lr=0.1,weight_decay=0.1)for e in range(5): ...
Linux基础使用2-结合python使用
Linux基础使用2-结合python使用
添加命令行参数运行python文件
通过import sys导入python 标准库中的 sys.py 模块,sys.argv 包含命令行参数的列表。通过循环获取sys.argv 中的参数。
特别注意:sys.argv[0]为代码本身。
for i in sys.argv: print(i)
实操1:打印命令行参数
控制台输入:
cd dongyu #你的文件路径vim test5.py#输入test5.py文件内容python3 test5.py 参数1 参数2
test5.py文件内容如下:
#!usr/bin/python3import sysfor i in sys.argv: print(i)
结果:
test5.py #sys.argv[0]参数1参数2
实操2:使用os模块打印/usr/bin/路径下所有以m开头的文件
控制台输入:
cd dongyu #你的文件路径vim test5.py#输入test5.py文件内容python3 test5.py
修改test5.py文件内容如下:
#!us ...
Pytorch与深度学习自查手册2-数据加载和预处理
Pytorch与深度学习自查手册2-数据加载和预处理
数据加载
DataSet类
自定义一个继承 Dataset类的类 ,需要重写以下三个函数:
__init__:传入数据,或者像下面一样直接在函数里加载数据;
__len__:返回这个数据集一共有多少个item;
__getitem__:返回一条训练数据,并将其转换成tensor。
通常还会在其中增加一个collate_fn函数,用于DataLoader,使用这个参数可以自己操作每个batch的数据,比如说在自然语言处理的命名实体识别任务中,在该函数中对每个batch中的样本都padding到同一长度等。
import torchfrom torch.utils.data import Datasetclass Mydata(Dataset): def __init__(self,path): #加载数据 a = np.load("a.npy",allow_pickle=True) b = np.load("b.npy",a ...
Pytorch与深度学习自查手册1-张量、自动求导和GPU
Pytorch与深度学习自查手册1-张量、自动求导和GPU
张量
构造Tensor
dtype类型:dtype=torch.long,torch.float,torch.double
常见的构造Tensor的函数:
函数
功能
示例
Tensor(sizes)
基础构造函数
torch.Tensor(4,3)
tensor(data)
类似于np.array
x = torch.tensor([5.5, 3])
ones(sizes)
全1
zeros(sizes)
全0
x = torch.zeros(4, 3, dtype=torch.long)
eye(sizes)
对角为1,其余为0
arange(s,e,step)
从s到e,步长为step
linspace(s,e,steps)
从s到e,均匀分成step份
rand/randn(sizes)
x = torch.rand(4, 3)
normal(mean,s ...