03 2022 档案
摘要:import torch x = torch.randn(3,1,4,1,2) a = x.squeeze(dim=1) # 成员函数删除第二维度 print(a.shape) b = torch.squeeze(x, dim=1) # torch自带函数删除第二维度 print(b.shape)
阅读全文
摘要:import os path=os.getcwd() #返回当前进程的工作目录 path_list=os.listdir(path) path_list.sort(key=lambda x:int(x[:-4])) #将'.jpg'左边的字符转换成整数型进行排序 print(path_list) 输
阅读全文
摘要:import torch from torchvision import transforms toPIL = transforms.ToPILImage() #这个函数可以将张量转为PIL图片,由小数转为0-255之间的像素值 img = torch.randn(3,128,64) pic = t
阅读全文
摘要:数据增强(Data Augmentation)的目的与作用卷积神经网络能够鲁棒地将物体分类,即便物体放置在不同的方向上,这也就是所说不变性的性质,即使卷积神经网络被放在不同方向上,它也能进行对象分类。更具体的说,卷积神经网络对平移、视角、尺寸或照度(或以上组合)保持不变性。这就是数据增强的本质前提。
阅读全文
摘要:这个链接很详细:https://blog.csdn.net/lz0499/article/details/101626098 抖动是通过错位的位移对图像产生的一种特殊效果:三者针对的目标分别为色相、亮度和饱和度。色彩抖动通过对构成图像的色相产生位移,造成临近点状差异的色彩交叉效果;饱和度抖动,饱和度
阅读全文
摘要:举例: >>> x = torch.randn(2, 3, 5) >>> x.size() torch.Size([2, 3, 5]) >>> x.permute(2, 0, 1).size() torch.Size([5, 2, 3]) https://zhuanlan.zhihu.com/p/7
阅读全文
摘要:https://www.jianshu.com/p/564ca3994482 https://blog.csdn.net/qq_23664173/article/details/83010348 https://www.cnblogs.com/xuexuefirst/p/8858274.html 1
阅读全文
摘要:参数: -q:v 2 表示输出的图片质量,一般是1到5之间(1 为质量最高)
阅读全文
摘要:import os import shutil def diff_file(path1, path2): path = 'newnew' fileName1 = set([_ for _ in os.listdir(path1)]) fileName2 = set([_ for _ in os.li
阅读全文
摘要:ls -l|grep "^d"| wc -l
阅读全文
摘要:a,b=[c,d] a=c b=d 如果是a=[c],那么a就是等于list类型的,如果是a=[c,],那么a=c!!! 跑模型报错,原因是我这个模型是二分类的,所以我删了top5,还把逗号删了,导致返回值变成了一个list类型的
阅读全文
摘要:01-.tar格式 解包:[*******]$ tar xvf FileName.tar 打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!) 02-.gz格式 解压1:[*******]$ gunzip FileName.gz 解压2
阅读全文
摘要:os.listdir(path) 返回path指定的文件夹包含的文件或文件夹的名字的列表。
阅读全文
摘要:import os def h264ToMp4(sourcePath, tagPath): cmd = 'ffmpeg -f h264 -i ' + sourcePath + ' -vcodec copy ' + tagPath print(">>cmd:\n %s" % (cmd)) result
阅读全文
摘要:报错原因:我训练的模型是二分类,所以根本没有五个类 torch.topk(input, k, dim=None, largest=True, sorted=True, out=None) -> (Tensor, LongTensor) input:一个tensor数据 k:指明是得到前k个数据以及其
阅读全文
摘要:tsm的dataloader,报错就是因为这个,原来的代码是image.open,我用的cv,转格式解决。 转换: 1.Image对象->np.adarray img = Image.open(path) img_array = np.array(img) 2.np.adarray->Image对象
阅读全文
摘要:dataset = SimpleDataset() dataloader = DataLoader(dataset, num_workers=2, batch_size=3) for batch in dataloader: print(batch) 主进程初始化 dataloader = Data
阅读全文
摘要:这个函数是用来求tensor中某个dim的前k大或者前k小的值以及对应的index。 用法 torch.topk(input, k, dim=None, largest=True, sorted=True, out=None) -> (Tensor, LongTensor) input:一个tens
阅读全文
摘要:gpu:nvidia-smi cpu:top
阅读全文
摘要:>>> li = ['a', 'b', 'c'] >>> li.extend(['d', 'e', 'f']) >>> li ['a', 'b', 'c', 'd', 'e', 'f'] >>> len(li) 6 >>> li[-1] 'f' >>> li = ['a
阅读全文
摘要:img = cv2.imread(test_data_dir)img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
阅读全文
摘要:https://bbs.cvmart.net/articles/5441 https://www.aiuai.cn/aifarm1967.html
阅读全文
摘要:find / -name cudnn_version.h 2>&1 | grep -v "Permission denied" cat 上面找到的cudnn_version.h https://blog.csdn.net/eaxy_z/article/details/108615548
阅读全文
摘要:dump: 将数据写入json文件中 1 with open("../config/record.json","w") as f: 2 json.dump(new_dict,f) 3 print("加载入文件完成...") load:把文件打开,并把字符串变换为数据类型 1 with open(".
阅读全文
摘要:启动TensorBoard 输入下面的指令来启动TensorBoard python tensorflow/tensorboard/tensorboard.py --logdir=path/to/log-directory 这里的参数 logdir 指向 SummaryWriter 序列化数据的存储
阅读全文
摘要:起初发现超过了内存,把batch_size改小 然后发现因为gpu利用率低被释放了,这才发现num_gpu是1... 最后把gpu和batchsize都改成8 速度瞬间快了,gpu利用率upup
阅读全文
摘要:当前GPU的算力与当前版本的Pytorch依赖的CUDA算力不匹配(3080算力为8.6,而当前版本的pytorch依赖的CUDA算力仅支持3.7,5.0,6.0,7.0) 我的解决方法是重新到清华源网站上下载了pytorch,解决 链接是不同pytorch和gpu cuda cudnn版本匹配:
阅读全文
摘要:在 shell 脚本的第一行加上一行 "#!/bin/bash" 即可。
阅读全文
摘要:img_list = 'neg.lst' geter = GetImageSize(img_list) geter.threaded(thread_num=32) geter.save(img_list[:-4]+'_withsize.lst') s[:-4]是什么? 这是字符串切片的意思。与列表和
阅读全文
摘要:import syspythonpath = sys.executableprint(pythonpath)
阅读全文
摘要:python很蠢,路径问题一直让人头疼。 import sys print(sys.path) # 查看当前路径 from os import pathd = path.dirname(__file__) # 获取当前路径parent_path = os.path.dirname(d) # 获取上一
阅读全文
摘要:pip show xxxx pip list https://blog.csdn.net/swansonge/article/details/115957148
阅读全文
摘要:https://pytorch.org/get-started/previous-versions/
阅读全文
摘要:import torch import numpy as np a = np.array([1, 2, 3]) t = torch.as_tensor(a) print(t) t[0] = -1 a 将numpy转为tensor也可以使用t = torch.from_numpy(a)
阅读全文
摘要:Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。 语法 replace()方法语法: str.replace(old, new[, max]) 参数 old -- 将被替换的子字符串。 new -
阅读全文
摘要:linux configure --prefix 的作用是:编译的时候用来指定程序存放路径 源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configur
阅读全文
摘要:https://www.cnblogs.com/liushui-sky/p/12843679.html i4k.xyz/article/qq_41854911/119454212 现在的问题是只能用/usr/bin/python3.8,用conda环境中的其他python就用不了read_cache
阅读全文
摘要:设定鼠标支持 设定鼠标滚动支持,执行如下命令即可 设定鼠标滚动支持:tmux set mouse on
阅读全文
摘要:https://stackoverflow.com/questions/70537488/cannot-import-name-registermattype-from-cv2-cv2 The same thing occurred to me yesterday when I used Colab
阅读全文
摘要:chmod +x run_train.sh 然后就可以啦
阅读全文
摘要:1.反斜杠. \ a = 1 b = 2 c = a +\ b print(c) longstring = 'this is a long long long long long long long \ string' print(longstring) 2.三引号 longstring1 = ''
阅读全文
摘要:tar -zxvf xxxx.tar.gz
阅读全文
摘要:https://blog.csdn.net/zhenaoxi1077/article/details/80953227 一、数据加载 在Pytorch 中,数据加载可以通过自己定义的数据集对象来实现。数据集对象被抽象为Dataset类,实现自己定义的数据集需要继承Dataset,并实现两个Pytho
阅读全文
摘要:链接:https://www.jianshu.com/p/b1a8264c2043 1.vim rt.sh # 直接写文件的名称.sh 就可以进入生成.sh文件并编辑 2.i进入编辑模式 esc结束编辑模式 :wq保存编辑 3. 编辑.sh脚本必须的,指定命令解释器,此句必须放在第一行 其中 #!
阅读全文
摘要:数字格式化 https://www.runoob.com/python/att-string-format.html 下表展示了 str.format() 格式化数字的多种方法: >>> print("{:.2f}".format(3.1415926)) 3.14 '{:b}'.format(11)
阅读全文
摘要:一、JSON 语法规则 JSON 语法是 JavaScript 对象表示语法的子集。 数据在名称/值对中 数据由逗号分隔 大括号 {} 保存对象 中括号 [] 保存数组,数组可以包含多个对象 二、JSON 对象 JSON 对象在大括号 {} 中书写: {key1 : value1, key2 : v
阅读全文
摘要:Python中分为3种除法: 1./ 2.% 3.//地板除,-5//-2=2,-1//-5=0,2//3=0,3//2=1 https://blog.csdn.net/TeFuirnever/article/details/89046679
阅读全文
摘要:python2.x range() 函数可创建一个整数列表,一般用在 for 循环中。 注意:Python3 range() 返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表 加上list()可以返回一个列表 >>> print([range(10)]) [rang
阅读全文
摘要:1.np.zeros()该函数返回一个ndarray。输出数组是具有指定形状, dtype, order并包含零的数组。 import numpy as np a=np.zeros(6,) a 输出 array([0., 0., 0., 0., 0., 0.]) 2. 函数功能:Return ran
阅读全文
摘要:split(' ')返回以空格分割后的字符串列表 strip()去除首尾的空格 eg. x=" frames/video_1 num_frames label_1 " tmp = x.strip().split(' ') print(tmp) # result:['frames/video_1',
阅读全文
摘要:描述 extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。 语法 extend()方法语法: list.extend(seq) 参数 seq -- 元素列表。 返回值 该方法没有返回值,但会在已存在的列表中添加新的列表内容。 实例 以下实例展示了 exten
阅读全文
摘要:方法有:1、使用【Ctrl+N】快捷键按文件名搜索py文件; 2、使用【Ctrl+shift+N】快捷键按文件名搜索所有类型的文件; 3、使用【ctrl+shift+f】快捷全局字符串搜索; 3、使用【ctrl+shift+a】快捷键配置项搜索。
阅读全文
摘要:ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名。 Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便。如果要使用此命令,可以作如下修改:打开 ~/.bashrc找到 #alias ll=’ls -l’,去掉前面的#就可以了。(关闭原来的终端才能使命令生效
阅读全文
摘要:1、视频码率:数据传输时单位时间传送的数据位数,也就是 是指视频文件在单位时间内使用的数据流量,一般用kbps单位,及千位每秒; 也就是取样率(并不等同与采样率,采样率的单位是Hz,表示每秒采样的次数),单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,但是文件体积与取样率是成正比的
阅读全文
摘要:真的很奇怪!经常显示没有rclone的命令,每次都要重新安装 curl https://rclone.org/install.sh | sudo bash ### 文件上传rclone copy /home/backup gdrive:backup # 本地路径 配置名字:谷歌文件夹名字### 文件
阅读全文
摘要:在自监督学习中,用于预训练的任务被称为前置/代理任务(pretext task),用于微调的任务被称为下游任务(downstream task)。 https://its304.com/article/weixin_38673554/107095413
阅读全文
摘要:https://its304.com/article/weixin_38673554/107095413 讲了pretext task、downstream task
阅读全文
摘要:1.backbone:翻译为主干网络的意思,既然说是主干网络,就代表其是网络的一部分,那么是哪部分呢?翻译的很好,主干部分,哈哈哈哈,文字游戏了哈。这个主干网络大多时候指的是提取特征的网络,其作用就是提取图片中的信息,共后面的网络使用。这些网络经常使用的是resnet VGG等,而不是我们自己设计的
阅读全文
摘要:MMD距离(Maximum mean discrepancy),最大均值差异。 1.我们可以用随机变量的矩来描述一个随机变量,比如一阶中心矩是均值,二阶中心矩是方差等等。如果两个分布的均值和方差都相同的话,它们应该很相似,比如同样均值和方差的高斯分布和拉普拉斯分布。但是很明显,均值和方差并不能完全代
阅读全文
摘要:参考链接:https://www.shangmayuan.com/a/439e322475624f9981b35cd2.html PIL(Python Image Library)是python的第三方图像处理库,可是因为其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了。
阅读全文
摘要:from __future__ import division from torchvision import models from torchvision import transforms from PIL import Image import argparse import torch i
阅读全文
摘要:在[2]中,我们从style transfer中使用的Gram matrix出发,试图解释为什么Gram matrix可以代表一个图片的style这个问题。这是我看完style transfer的paper后感觉最为迷惑的一点。一个偶然的机会,我们发现这个匹配两张图的Gram matrix,其实数学
阅读全文
摘要:就是feature map,只是不同叫法; feature map是卷积运算的生成结果;
阅读全文
摘要:一、点乘 点乘都是broadcast的,可以用torch.mul(a, b)实现,也可以直接用*实现。 矩阵点乘,就是矩阵各个对应元素相乘,要求矩阵必须维数相等,即MxN维矩阵乘以MxN维矩阵 。 二、矩阵乘 当a, b维度不一致时,会自动填充到相同维度相点乘。 矩阵相乘有torch.mm和torc
阅读全文
摘要:图像预处理转化为Tensor后的unsqueeze(0)有什么意义? image = transform(image).unsqueeze(0) 这个unsqueeze(0),感觉就仅仅在在最外层增加了一个维度,有什么意义吗? unsqueeze()这个函数主要是对数据维度进行扩充。给指定位置加上维
阅读全文
摘要:from torch import nn import torch from torch.utils.data import DataLoader from torchvision import transforms, datasets from torch import nn, optim imp
阅读全文
摘要:dict() 函数用于创建一个字典。 https://www.runoob.com/python/python-func-dict.html
阅读全文
摘要:torch.randn_like(input, *, dtype=None, layout=None, device=None, requires_grad=False, memory_format=torch.preserve_format) -> Tensor 返回一个和输入大小相同的张量,其由
阅读全文
摘要:https://zhuanlan.zhihu.com/p/36173202
阅读全文
摘要:1、通配符导入(不提倡)。 from os import * 2、单行导入单个模块 import json 3、单行导入多个模块 import os, sys, time 4、导入指定的模块属性 from os import path, fork, mkdir https://blog.csdn.n
阅读全文
摘要:https://docs.python.org/zh-cn/3/library/argparse.html#module-argparse 文档非常详细 import argparse parser = argparse.ArgumentParser() parser.add_argument("e
阅读全文
摘要:函数用途:对输入图像以最外围像素为对称轴,做四周的轴对称镜像填充。 填充顺序:左->右->上->下 对于一个4维的Tensor,当只指定一个padding参数时,则表示对四周采用相同的填充行数。 https://blog.csdn.net/LionZYT/article/details/120181
阅读全文
摘要:Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。
阅读全文
摘要:AlexNet包含5个卷积层和3个全连接层 (从下往上看 ,5个卷积层后全连接层) import torch.nn as nn class AlexNet(nn.Module): def __init__(self, num_classes=1000): super(AlexNet, self)._
阅读全文
摘要:一、lstm 这个链接讲lstm,非常详细!https://towardsdatascience.com/illustrated-guide-to-lstms-and-gru-s-a-step-by-step-explanation-44e9eb85bf21 Sigmoid 层输出 0 到 1 之间
阅读全文
摘要:model.train()和model.eval()用法 1.1 model.train() model.train()的作用是启用 Batch Normalization 和 Dropout。 如果模型中有BN层(Batch Normalization)和Dropout,需要在训练时添加model
阅读全文
摘要:一、resnet18整体网络结构 我们观察,实际可以将ResNet18分成6个部分: 1. Conv1:也就是第一层卷积,没有shortcut机制。 2. Conv2:第一个残差块,一共有2个。 3. Conv3:第二个残差块,一共有2个。 4. Conv4:第三个残差块,一共有2个。 5. Con
阅读全文
摘要:为了方便进行数据的操作,pytorch团队提供了一个torchvision.transforms包,我们可以用transforms进行以下操作: PIL.Image/numpy.ndarray与Tensor的相互转化; 归一化; 对PIL.Image进行裁剪、缩放等操作。 通常,在使用torchvi
阅读全文
摘要:1.论文:Gradient-Based Learning Applied to Document Recognition 2.网络结构: LeNet包括7个layers(不包括Input),Fig 1中的C、S和F分别指卷积层、下采样层(池化层)和全连接层,其后所跟随的数字1-6指所在层的索引位置。
阅读全文
摘要:1.下采样是缩小图像,英文是subsampled或者downsampled;上采样是放大图像,英文是upsampling 2.池化层是当前卷积神经网络中常用组件之一,它最早见于LeNet一文,称之为Subsample。自AlexNet之后采用Pooling命名。池化层是模仿人的视觉系统对数据进行降维
阅读全文
摘要:https://blog.csdn.net/qq_27825451/article/details/90550890这个链接超级详细! class NeuralNet(nn.Module): pytorch中其实一般没有特别明显的Layer和Module的区别,不管是自定义层、自定义块、自定义模型,
阅读全文
摘要:Tensor总结 (1)Tensor 和 Numpy都是矩阵,区别是前者可以在GPU上运行,后者只能在CPU上; (2)Tensor和Numpy互相转化很方便,类型也比较兼容 (3)Tensor可以直接通过print显示数据类型,而Numpy不可以
阅读全文
摘要:一、.to(device) 可以指定CPU 或者GPU device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") # 单GPU或者CPU model.to(device) #如果是多GPU if torch.cud
阅读全文
摘要:torch.device代表将torch.Tensor分配到的设备的对象,有cpu和cuda两种,这里的cuda就是gpu,至于为什么不直接用gpu与cpu对应,是因为gpu的编程接口采用的是cuda print(torch.cuda.is_available()) #cuda是否可用; print
阅读全文
摘要:https://www.runoob.com/python/att-string-format.html print('{} {}'.format("name","gender")) print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.
阅读全文
摘要:在pytorch中,tensor有一个requires_grad参数,如果设置为True,则反向传播时,该tensor就会自动求导。tensor的requires_grad的属性默认为False,若一个节点(叶子变量:自己创建的tensor)requires_grad被设置为True,那么所有依赖它
阅读全文
摘要:correct+=(predicted==labels).sum() 一、Python自带sum() sum(iterable[, start]):iterable——可迭代对象,如:list、tuple、set等;start——固定相加的参数,默认为0。 sum([0, 1, 2]) -- > 3
阅读全文
摘要:一、_, predicted = torch.max(outputs.data, 1) 那么,这里的 下划线_ 表示什么意思? 首先,torch.max()这个函数返回的是两个值,第一个值是具体的value(我们用下划线_表示),第二个值是value所在的index(也就是predicted)。 那
阅读全文
摘要:size()函数主要是用来统计矩阵元素个数,或矩阵某一维上的元素个数的函数。 参数numpy.size(a, axis=None)a:输入的矩阵axis:int型的可选参数,指定返回哪一维的元素个数。当没有指定时,返回整个矩阵的元素个数。 >>> a = np.array([[1,2,3],[4,5
阅读全文
摘要:numpy中reshape函数的三种常见相关用法 reshape(1,-1)转化成1行: reshape(2,-1)转换成两行: reshape(-1,1)转换成1列: reshape(-1,2)转化成两列 数组新的shape属性应该要与原来的配套,如果等于-1的话,那么Numpy会根据剩下的维度计
阅读全文
摘要:1.detach():返回一个新的Variable,从当前计算图中分离下来的,但是仍指向原变量的存放位置,不同之处只是requires_grad为false,得到的这个Variable永远不需要计算其梯度,不具有grad。 即使之后重新将它的requires_grad置为true,它也不会具有梯度g
阅读全文
摘要:https://pytorch123.com/ThirdSection/SaveModel/ 这个链接非常的详细! 1、#保存整个网络 torch.save(net, PATH) # 保存网络中的参数, 速度快,占空间少 torch.save(net.state_dict(),PATH) # #针对
阅读全文
摘要:修改resnet最后的全连接层输出大小: resnet = torchvision.models.resnet18(pretrained=True) for param in resnet.parameters(): param.requires_grad = False. #冻结所有层 resne
阅读全文
摘要:一、torchvision主要包括一下几个包: vision.datasets : 几个常用视觉数据集,可以下载和加载,这里主要的高级用法就是可以看源码如何自己写自己的Dataset的子类vision.models : 流行的模型,例如 AlexNet, VGG, ResNet 和 Densenet
阅读全文
摘要:用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 举例:
阅读全文
摘要:1.均匀分布torch.rand(*sizes, out=None) → Tensor 返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数。张量的形状由参数sizes定义。 参数: sizes (int...) - 整数序列,定义了输出张量的形状; out (Tensor, opti
阅读全文
摘要:class torch.optim.SGD(params, lr=, momentum=0, dampening=0, weight_decay=0, nesterov=False)[source] 实现随机梯度下降算法(momentum可选)。 Nesterov动量基于On the importa
阅读全文
摘要:nn.Linear():用于设置网络中的全连接层,需要注意的是全连接层的输入与输出都是二维张量 一般形状为[batch_size, size],不同于卷积层要求输入输出是四维张量。其用法与形参说明如下:
阅读全文
摘要:1.零维张量,又叫做标量 2.一维张量,没有行和列的概念,只有长度 3.二维张量,行和列,几行几列 4.三维张量,行、列、深度 https://www.jianshu.com/p/f34457c222c5
阅读全文
摘要:注释和代码同一行的,需要离代码至少两个空格,井号后加一个空格再写注释
阅读全文
摘要:1.du -sh 查看当前目录总共占的容量,而不单独列出各子项占用的容量 ,在所在目录输入du -sh: 2.只显示 Images 文件夹的大小 [Linux]$ du -h Images/ 1.7M Images/ 3.只显示当前文件夹的总大小 [Linux]$ du -hs 2.4M . htt
阅读全文
摘要:查看一下磁盘空间,大概率是空间不足了
阅读全文
摘要:find ./ -type f | wc -l
阅读全文
摘要:shutil 是高级的文件,文件夹,压缩包处理模块。 https://zhuanlan.zhihu.com/p/37409935
阅读全文
摘要:图片转视频的命令如下: $ ffmpeg -r 25 -i img001.jpg -vcodec libx264 -pix_fmt yuv420p one_img_to_video.mp4 ... [libx264 @ 0x7faf5b809200] i8c dc,h,v,p: 65% 19% 9%
阅读全文
摘要:unzip img.zip -d img -d+指定目录
阅读全文
摘要:os模块中的os.path.exists()方法用于检验文件是否存在。 判断文件是否存在 import os os.path.exists(test_file.txt) #True os.path.exists(no_exist_file.txt) #False 判断文件夹是否存在 import o
阅读全文