
pytorch
jjw_zyfx
仅当做个人笔记使用
展开
-
yolov5 训练自定义数据集全过程
old_money是自己的数据集目录,这个目录要放在datasets目录下,也就是拿着这个中心点坐标除以图片的宽度。也就是拿着这个中心点坐标除以图片的高度。也就是拿着这个框的宽度除以图片的宽度。也就是拿着这个框的高度除以图片的高度。原创 2023-03-17 12:08:04 · 885 阅读 · 0 评论 -
pytorch cv2 plt transforms pause waitforbuttonpress一个完整的图片处理程序
pytorch cv2 plt transforms pause waitforbuttonpress一个完整的图片处理程序原创 2022-07-09 19:20:39 · 702 阅读 · 0 评论 -
torch.utils.data.RandomSampler和torch.utils.data.SequentialSampler的区别
torch.utils.data.RandomSampler和torch.utils.data.SequentialSampler的区别原创 2022-06-26 10:08:21 · 2874 阅读 · 0 评论 -
torchvision.models._utils.IntermediateLayerGetter使用教程
torchvision.models._utils.IntermediateLayerGetter原创 2022-06-25 16:10:11 · 1094 阅读 · 0 评论 -
reshape、permute和transpose的区别
python原创 2022-06-03 17:36:44 · 347 阅读 · 0 评论 -
models.__dict__[args.arch] 实例复现
在看moco源码时发下有个这样的代码不知道咋用的,复现了一下model = moco.builder.MoCo( # 这种初始化模型的方式是因为导包的时候导到了moco这一层 models.__dict__[args.arch], args.moco_dim, args.moco_k, args.moco_m, args.moco_t, args.mlp)print(model)具体复现过程如下:1、文件夹目录如下:只需要红框框住的这三个.py文件就行,test文原创 2022-05-28 10:34:10 · 2332 阅读 · 0 评论 -
albumentations.HorizontalFlip、Rotate、RandomBrightnessContrast、ShiftScaleRotate、ToTensorV2等增强方法测试
代码及效果如下:先导包import cv2import albumentationsfrom albumentations.pytorch.transforms import ToTensorV2import matplotlib.pyplot as plt原图:image = cv2.imread('./cat3.jpg')image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)plt.figure(figsize=(5, 5)) plt.imsh原创 2022-04-16 11:52:39 · 4963 阅读 · 2 评论 -
KFold交叉验证的用法
from sklearn.model_selection import KFoldkfold = KFold(n_splits=5, shuffle=False) # n_splits:将原始数据分成多少折(份) shuffle:是否打乱每折的顺序test = torch.arange(10)for train_data, test_data in kfold.split(test): # 可以看出分为5折,先前两个作为测试数据,后8个作为训练数据,然后依次类推 print(train_d原创 2022-04-14 15:47:26 · 1091 阅读 · 0 评论 -
RuntimeError: unable to open shared memory object </torch_85159_194567204> in read-write mode
报错的原因呢是因为使用迭代器的时候用了多个workers即在这一句for (tokens_X, segments_X, valid_lens_x, pred_positions_X, mlm_weights_X, mlm_Y, nsp_y) in train_iter: 而这个train_iter的参数为:num_workers = d2l.get_dataloader_workers()train_iter = torch.utils.data.DataLoader(train_set, batch原创 2022-04-12 11:57:20 · 4181 阅读 · 1 评论 -
d2l.Vocab(sentences, min_freq=5, reserved_tokens=[‘<pad>‘, ‘<mask>‘, ‘<cls>‘, ‘<sep>‘]) 参数讲解
d2l.Vocab(sentences, min_freq=2, reserved_tokens=['<pad>', '<mask>', '<cls>', '<sep>'])sentences:源句子,比如说 sentences赋值为下边的五个句子 注意第一句我手动添加了两个'<unk>',第二句添加了'<pad>', '<mask>', '<cls>', '<sep>',作为第三个参数的测试[原创 2022-04-10 20:02:41 · 1369 阅读 · 0 评论 -
net网络查看其参数state_dict,data,named_parameters
代码如下:net = nn.Linear(2, 2)print(net.state_dict())输出结果:OrderedDict([('weight', tensor([[ 0.6155, -0.4649], [-0.1848, -0.0663]])), ('bias', tensor([-0.0265, -0.4134]))])从输出结果可以看出,在适用nn.Linear的时候会自动给weight和bias赋初值,点进Linear后可以发现Att原创 2022-03-04 11:14:22 · 1150 阅读 · 0 评论 -
Relu和dropout的理解
先看代码def dropout_layer(X, dropout): """该函数以dropout的概率丢弃张量输入X中的元素 """ assert 0 <= dropout <= 1 # 在本情况中,所有元素都被丢弃。 if dropout == 1: return torch.zeros_like(X) # 在本情况中,所有元素都被保留。即不用丢弃 if dropout == 0: return X原创 2022-03-03 21:51:41 · 1339 阅读 · 0 评论 -
Cross Entropy Loss 交叉熵损失详解
交叉熵公式:H(p,q)=−∑plogqH(p,q) = - \sum plogqH(p,q)=−∑plogq为啥使用交叉熵,先看一组例子对比如果对于多分类的真实值的概率为q = [1, 0, 0, 0, 0] 可以理解为,[是猫,非猫,非猫,非猫,非猫]多分类的预测值的概率为(第一组)p = [0.4, 0.3, 0.05, 0.05, 0.2] 则计算交叉熵结果为:0.916如果预测值的结果为另一组(第二组)即p=[0.98, 0.01, 0, 0, 0.01]则交叉熵的结果为:0.02经过原创 2022-03-03 16:45:47 · 727 阅读 · 0 评论 -
ffmpeg和cv2解析视频速度及帧对比
import osimport timeimport cv2from pathlib import Pathimport globstart_time = time.time()result = os.system('ffmpeg -i out.mp4 -f image2 -v quiet ./video_test/frame%05d.jpg')end_time = time.time()ffmpeg_total_time = end_time-start_timeimage_list原创 2022-02-24 18:02:51 · 3351 阅读 · 0 评论 -
Python读取图片的几种方法供net使用
第一种方式:cv2:import cv2class my_net(nn.Module): def __init__(self): super(my_net, self).__init__() #加载ResNet预训练模型 self.model = resnet50(pretrained=False) self.model.load_state_dict(torch.load('./models/resnet50-19c8e357.p原创 2022-02-23 09:43:49 · 968 阅读 · 0 评论 -
ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26‘ not found (required
完整报错信息:ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26’ not found (required by /home/jjw/miniconda3/envs/jjwenv/lib/python3.8/site-packages/faiss/…/…/…/libfaiss.so)解决方法:原创 2022-02-01 14:01:38 · 3011 阅读 · 0 评论 -
linux下安装GPU 版本 torch torchvision等最方便的方式
其实很简单而且很快,就是安装YOLOV5中的requirement.txt 中的内容即可即去这个地方点我进入YOLOV5找到requirement.txt 将其中的内容复制下来,放到你的随便起名最好还是requirement.txt中然后再当前目录下打开一个终端 然后执行 pip install -r requirements.txt或者是你起的名字则执行pip install -r 你起的名字.txt 坐等安装完即可...原创 2022-01-27 16:38:39 · 3098 阅读 · 1 评论 -
tensor 中的数组取值为None即test[None]的效果
import torchtest = torch.arange(10).reshape(2, 5)print(test)none1 = test[:, None] # 次外层添加一层print(test)print(none1)print(none1.shape)test2 = test[None] # 最外层添加一层print(test2)print(test2.shape)# 从上边可以看出来None的作用就是添加一个维度输出结果:tensor([[0, 1, 2, 3原创 2021-12-11 15:15:15 · 1927 阅读 · 0 评论 -
yolo代码中的shortcut、route、yolo层讲解
1、shortcut层elif module_def["type"] == "shortcut": layer_i = int(module_def["from"]) temp_shape1, temp_shape2 = layer_outputs[-1].shape, layer_outputs[layer_i].shape x = layer_outputs[-1] + layer_outputs[layer_i]单步结果:从单步的结果来看layer_outputs[-原创 2021-11-10 22:09:16 · 2426 阅读 · 0 评论 -
给图片添加一维数据
# Handle images with less than three channelsif len(img.shape) != 3: # 先判断了下是不是三维的 # 不够三维添加一维,反正的弄够三维 img是一个Tensor对象 img = img.unsqueeze(0) # 就是将最后一维的数据复制一分也用作新添加的那维的数据 img = img.expand((3, img.shape[1:]))...原创 2021-11-09 22:11:03 · 575 阅读 · 0 评论 -
No module named tensorboard.main在安装tensorboardX的时候遇到的问题
解决方法其实很简单1 先安装TensorFlow(虽然我用pytorch)2 再安装tensorboardX原创 2021-09-27 22:58:23 · 467 阅读 · 0 评论 -
fig.axes.text各参数详解
主要讲解以下几个参数:# 文本显示内容在锚框的左上角显示axes.text(rect.xy[0], rect.xy[1], labels[i], va='center', ha='center', fontsize=9, color=text_color, # facecolor就是锚框的填充色 lw即linewidth 就是锚框的边框的宽度 bbox=dict(facecolor=color, lw=0))官方解释:关于bbox参原创 2021-09-24 09:27:04 · 5660 阅读 · 0 评论 -
torch.meshgrid的用法
原创 2021-09-23 16:20:57 · 550 阅读 · 0 评论 -
pytorch中让数组显示更多的数字 torch.set_printoptions参数详解 numpy也是这个函数
官方解释:各参数详细解释:precision 精度threshold 阈值edgeitems 边界元素数linewidth 线宽 即一行容纳多少位profile 显示样式原创 2021-09-23 13:45:02 · 1385 阅读 · 0 评论 -
torch.permute的用法
官方解释其实permute里边的参数就类似下标索引,按照给定的顺序进行更改原创 2021-09-23 11:05:10 · 651 阅读 · 0 评论 -
torch.optim.lr_scheduler.StepLR参数解析
trainer = torch.optim.SGD(net.parameters(), lr=lr, momentum=0.9,weight_decay=wd)scheduler = torch.optim.lr_scheduler.StepLR(trainer, lr_period, lr_decay)官网的参数结构:第一个参数就是所使用的优化器对象第二个参数就是每多少轮循环后更新一次学习率(lr)第三个参数就是每次更新lr的gamma倍可点击参考此链接...原创 2021-09-22 20:36:48 · 13386 阅读 · 0 评论 -
torch.optim.SGD参数学习率lr、动量momentum、权重衰减weight_decay的解析
torch.optim.SGD(net.parameters(), lr=lr, momentum=0.9,weight_decay=wd)第一个参数包括权重w,和偏置b等是神经网络中的参数,也是SGD优化的重点第二个参数lr是学习率第三个参数momentum是冲量第四个参数weight_decay是权重衰减另外可点击参考此链接...原创 2021-09-22 20:01:45 · 29527 阅读 · 0 评论 -
torch.utils.data.DataLoader使用
各参数详解如图原创 2021-09-22 17:24:55 · 634 阅读 · 0 评论 -
torch.squeeze和 unsqueeze
squeeze官方解释:官方的例子:实现细节默认去掉所有的1维的,如果是0则表示啥也不操作去掉第一个1维的(但是如果是2则会出问题待解决)unsqueeze的用法直接看官方的实例原创 2021-09-20 17:19:57 · 241 阅读 · 0 评论 -
d2l.plt.Rectangle、imshow的使用
原创 2021-09-20 14:33:34 · 2162 阅读 · 0 评论 -
torch.cat 和torch.stack的区别
cat:先看官方解释下面看例子:a = torch.arange(6).reshape(2,3)print('a\n', a)b = torch.arange(6,12).reshape(2, 3)print('b\n', b)c = torch.arange(12, 16).reshape(2,-1)print('c\n', c)torch.cat((a, b), 0) # 在第0维上进行连接 也是默认的torch.cat((a, b)) # 在第0维上进行连接 也是默认原创 2021-09-20 14:16:15 · 716 阅读 · 0 评论 -
torch 求导时的backward带参和不带参的区别
具体区别看代码import torchx = torch.arange(4.0, requires_grad = True)y = 2*torch.dot(x,x)y.backward()x.gradx.grad.zero_()y = x.sum()y.backward()x.gradx = torch.arange(4.0, requires_grad = True)y = 2*torch.dot(x,x)print('y\n', y) # 说明此时的y是个标量y.bac原创 2021-09-14 18:01:13 · 1142 阅读 · 0 评论 -
卷积中的 填充和步幅
填充公式和方法:原创 2021-09-11 11:25:48 · 132 阅读 · 0 评论 -
torch.max、argmax、shape、uniform_、clamp、full、full_like、nonzero、flatten、sparse_coo_tensor的用法
max原创 2021-08-31 10:00:17 · 558 阅读 · 0 评论 -
查看和修改tensor的类型的方法
原创 2021-08-29 15:42:00 · 1549 阅读 · 0 评论 -
pytorch 中的 #@save的意思
官方解释如下:具体链接请点击查看原创 2021-08-27 09:33:38 · 13251 阅读 · 6 评论 -
d2l.plt.scatter参数详解
d2l.plt.scatter 中的参数其实就是matplotlib中的scatterdef scatter(x: Any, y: Any, s: Any = None, c: Any = None, marker: Any = None, cmap: Any = None, norm: Any = None, vmin: Any = No原创 2021-08-25 16:41:45 · 4645 阅读 · 0 评论 -
torch 中的detach、numel、retain_graph、repeat、repeat_interleave等参数的用法
detachimport torchx = torch.arange(4.0)x.requires_grad_(True) # 等价于 `x = torch.arange(4.0, requires_grad=True)`y = x * x# detach作用是:将u作为常数处理。即将y.detach的返回值作为常数而不再是关于x的函数u = y.detach()z = u * xz.sum().backward() # 为啥不直接求导原因是在机器学习或深度学习中一般不用向量(矩阵)求导原创 2021-08-25 15:13:15 · 2583 阅读 · 0 评论 -
矩阵求导数
总结下来就是对X求导如果X是向量则结果需要转置一下原创 2021-08-25 13:58:09 · 342 阅读 · 0 评论 -
MMDetection介绍
原创 2021-08-24 22:28:03 · 234 阅读 · 0 评论