目录
问题二:requirements: Ultralytics requirement ['gitpython'] not found
anaconda
安装
conda命令
创建虚拟环境
conda create --name 名字 python=3.9
删除虚拟环境
conda env remove --name 环境名
激活虚拟环境
conda activate 环境名
查看所有环境
conda env list
查看依赖列表
conda list
退出虚拟环境
conda deactivate
安装依赖
conda install 依赖=版本
删除下载源/初始化
conda config --remove-key channels
查看下载源
conda config --show channels
pytorch-gpu版
安装
包含模块
PyTorch 核心
torchaudio 处理音频
torchtext 处理文字
torchvision 处理视觉图片
TorchElastic TorchServe PyTorch on XLA Devices
加载数据
pytorch每个模块包含各自的数据集,以下内容以 torchvision 模块为例
参数:
root:下载地址
train:是否为训练集
download:是否下载数据
import torchvision
torchvision.datasets.xxxx()
例如:
train_set = torchvision.datasets.CIFAR10(root="./dataset", train=True,download=True)
test_set = torchvision.datasets.CIFAR10(root="./dataset", train=False,download=True)
dataloader
对数据集合进行分批
参数:
dataset:数据集对象,
batch_size:每批次的数量,
shuffle:是否随机选取,
num_workers:线程数量,0代表主线程
drop_last:无法满足batch_size 时是否丢弃数据
from torch.utils.data import DataLoader
test_data = torchvision.datasets.CIFAR1e("./dataset", train=False,transform=torchvision.transforms. ToTensor())
test_loader = DataLoader(dataset=test_data, batch_size=4, shuffle=True,num_workers=0,drop_last=False)
for data in test_loader:
imgs, targets = data
print( imgs.shape) // [4,32,32,3] 每一批有四个tensor对象
print(targets)
tensorboard
用于显示图像
安装
pip/conda install tensorboard
查看图像
命令行
tensorboard --logdir="文件地址" --port=端口号
使用
from torch.util.tensorboard import SummaryWriter
writer = SummaryWriter("log地址")
1、writer.add_scaler("标题",y轴,x轴)
2、writer.add_image("标题",y轴,x轴)
writer.close()
transform
导入
from torchvision import transforms
ToTensor
将图片对象转化为Tensor对象
from PIL import Image
from torchvision import transforms
#绝对路径c: \users \Zhiyao\Desktop\learn_torch\dataset\train\ants_image \0013035.jpg
#耜对路径dataset/train/ants_image/0013035.jpg
img_path = "dataset/train/ants_image/0013035.jpg"
#获取图片
img = Image.open( img_path)
tensor_trans = transforms.ToTensor( )
tensor_img = tensor_trans(img)
Normalize
归一化
计算公式:input = ( input - mean ) / std
from torchvision import transforms
# 参数一:均值 参数二:方差
trans_norm = transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
img_norm = trans_norm( img_tensor)
Resize
缩放图片
from torchvision import transforms
trans_resize = transforms.Resize(( 512,512))
img_resize = trans_resize(img)
print( img_resize)
Compose
组合式操作,有先后顺序之分
#获取图片
img = Image.open( img_path)
tensor_trans = transforms.ToTensor( )
trans_resize_2 = transforms.Resize( 512)
#操作组合
trans_compose = transforms.compose( [trans_resize_2,trans_totensor])
img_resize_2 = trans_compose( img )
RandomCrop
随机裁剪,默认正方形
#RandomCrop
trans_random = transforms.Randomcrop( 裁剪大小 512)
tensor
创建tensor对象
torch.tensor([1,2,3])
reshape
改变尺寸
torch.reshape(tensorObj,[w,h])
Conv2d
二维卷积
in_channels:输入通道数,彩色为3
out_channels:卷积核数量,一般为1
kernel_size:卷积核大小,一般为3
stride:步长
padding:边缘填充,默认0,一般为1
group:卷积核组数,int
bias:是否偏置true,boolean
padding_mode: 填充的数字,str
conv2d=torch.nn.functional.Conv2d(in_channels,out_channels,...)
output=conv2d(输入,卷积核,步长)
Convranspose2d
转置卷积:扩大输入input的shape
padding:减小shape
原理:
输入:[1,2] 卷积核:[0,1] 输出:[ 1x0 1x1 2x0 2x1 ]
[3,4] [1,0] [1x1 1x0 ... ]
nn.Convranspose2d(in_channel, out_channel, kernel_size=2, bias=False,padding = 1)
MaxPool2d
最大池化