pytorch
junjian Li
如若前路不明,请俯首看脚下.
展开
-
【PyTorch】torch.mean(), dim=0, dim=1
【PyTorch】torch.mean(), dim=0, dim=1原创 2022-09-09 16:45:26 · 1350 阅读 · 0 评论 -
将Jupyter Notebook代码转换为Python脚本
jupyter nbconvert --to script my_notebook.ipynb原创 2022-01-29 19:16:22 · 1782 阅读 · 0 评论 -
Pytorch里面的DataLoader的collate_fn参数
DataLoader的collate_fn参数,实现自定义的batch输出。DataLoader完整的参数表如下:class torch.utils.data.DataLoader( dataset, batch_size=1, shuffle=False, sampler=None, batch_sampler=None, num_workers=0, collate_fn=<function default_collate>,原创 2022-01-13 19:09:23 · 1258 阅读 · 0 评论 -
torch.optim.lr_scheduler.CosineAnnealingWarmRestarts
torch.optim.lr_scheduler.CosineAnnealingWarmRestarts(optimizer, T_0, T_mult=1, \eta_min=0, last_epoch=- 1, verbose=False)使用余弦退火来设置每个参数组的学习率.- optimizer (Optimizer) – Wrapped optimizer. 优化器- T_0 (int) – Number of iterations for the first restart.学习率第一原创 2021-12-05 17:50:09 · 4865 阅读 · 1 评论 -
jupyter-lab添加虚拟环境
1.首先是创建环境:com_envs2.然后是添加环境ipython kernel install --user --name com_envs原创 2021-11-24 19:31:54 · 657 阅读 · 0 评论 -
models.__dict__[args.model]()
import torchvision.models as modelsmodels = models.__dict__{‘name’: ‘torchvision.models’,‘doc’: None,‘package’: ‘torchvision.models’,………‘DenseNet’: torchvision.models.densenet.DenseNet,‘densenet121’: <function torchvision.models.densenet.den原创 2021-10-23 21:39:38 · 2383 阅读 · 0 评论 -
2021-05-20
基线模型1. 裸数据基线首先不做特征工程,做一些简单的数据预处理,直接塞入LGBM多折模型(固定折数和参数),看一下效果。部分数据的清洗、缺失值的填充(不填充也可以),和 Object 类型特征的 LabelEncodingdf_features['洗手间数量'].fillna(-1, inplace=True)df_features['床的数量'].fillna(-1, inplace=True)df_features['卧室数量'].fillna(-1, inplace=True)df_f原创 2021-05-20 13:45:38 · 85 阅读 · 0 评论 -
伪标签
什么是伪标签伪标签是将置信度较高的测试数据添加到训练数据中的过程。伪标签一共有5个步骤。使用**训练集数据(Train1)**训练一个模型。使用训练好的模型预测测试集数据。将预测的置信度较高的样本加入到训练集中。使用新的训练集训练一个新的模型。使用新的模型去预测测试集数据。1. 建立第一个模型正常建立模型即可2. 预测测试集正常测试即可3. 增加伪标签数据到训练集将所有预测的置信度Pr(y=1|x)>0.99和Pr(y=0|x)>0.99的加入到训练集中。4.训练一原创 2021-05-19 16:16:24 · 2062 阅读 · 4 评论 -
pytorch 交叉熵损失 出现nan
1. 问题描述代码如下:norm_ff = ff / (ff**2).sum(0, keepdim=True).sqrt()coef_mat = torch.mm(norm_ff.t(), norm_ff)coef_mat.div_(self.tau2)L_fd = F.cross_entropy(coef_mat, y)这是因为计算图中存在.sqrt(),这样会导致在第一个iteration之后出现nan,第一次iteration之内,还是可以看到loss不为nan的。2. 解决方法2.原创 2021-05-15 08:52:18 · 1477 阅读 · 0 评论 -
KeyError: ‘unexpected key “module.encoder.embedding.weight” in state_dict’
最近在跑模型的时候出现了KeyError: ‘unexpected key “module.encoder.embedding.weight” in state_dict’错误。记录一下:1。这可能是因为你使用了nn.DataParallel来存储模型module,而你现在尝试不使用加载模型DataParallel直接加载模型,所以就出现了这个bug。解决方法:1.你可以先将model加载到DataParallel:mdoel = torch.nn.DataParallel(model),然后再加载预原创 2020-12-08 11:10:09 · 846 阅读 · 0 评论 -
ERROR: Command errored out with exit status 1
在安装openslide的时候出现:ERROR: Command errored out with exit status 1: command: 'd:\anaconda\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\10622\\AppData\\Local\\Temp\\pip-install-2au6lf3q\\openslide-python\\setup.py'"'原创 2020-06-28 09:25:18 · 5172 阅读 · 0 评论 -
将数据集划分为训练集验证集和测试集
将数据集划分为训练集验证集和测试集:""" 将原始数据集进行划分成训练集、验证集和测试集"""import osimport globimport randomimport shutildataset_dir = os.path.join("..", "..", "Data", "cifar-10-png", "raw_test")train_dir = os.path...原创 2020-04-18 21:04:24 · 5245 阅读 · 0 评论 -
命令行解析之parse_args()和从checkpoint文件中导入模型参数(checkpoint['state_dict'],checkpoint['optimizer'])
import argparsedef parse_args(): parser = argparse.ArgumentParser(description='PyTorch Implementation of DeepCluster') parser.add_argument('data', metavar='DIR', help='path to dataset...原创 2019-11-14 18:40:35 · 1613 阅读 · 1 评论 -
AttributeError: 'Graph' object has no attribute 'node'
Traceback (most recent call last): File "src/main.py", line 24, in <module> main() File "src/main.py", line 18, in main clustering_machine.decompose() File "/root/userfolder/GCN/Cl...原创 2019-11-07 09:48:04 · 13285 阅读 · 17 评论 -
read(),readline,readlines三者之间的异同和split分割字符串
pos-1.txt89,111,226,252,263,544,552,553,557,1264,1284,1889,1953,1960,2432,2433,4138,4648,4655,4663,5980,10010,10315,10576,10843,11994,12096,12165,12332,12341,12342,12343,12521,12532,12793,12795,12796...原创 2019-10-26 21:45:05 · 3407 阅读 · 0 评论 -
实现从文本读取文件名字,然后将文件夹里面的这个文件移动到另外一个文件夹里面
import osimport shutilfor t in range(1,11): # 打开txt文件 text_file = open("H:/data/CRC/train/阳性十类/{}/pos-{}.txt".format(t,t), "r") # 读取 list1 = text_file.readline() # root目录 di...原创 2019-10-26 21:21:41 · 842 阅读 · 0 评论 -
torch.manual_seed(args.seed) torch.cuda.manul_seed_all(args.seed)和numpy.random.seed()
#固定随机种子 args.seed=31#为CPU设置种子用于生成随机数,以使得结果是确定的torch.manual_seed(args.seed)#为所有的GPU设置种子torch.cuda.manual_seed_all(args.seed)#没有使用GPU的时候设置的固定生成的随机数np.random.seed(args.seed)...原创 2019-10-24 19:58:39 · 1915 阅读 · 3 评论 -
torch.topk(1,)
torch.topk(input, k, dim=None, largest=True, sorted=True, out=None) -> (Tensor, LongTensor)沿给定dim维度返回输入张量input中 k 个最大值。如果不指定dim,则默认为input的最后一维。如果为largest为 False ,则返回最小的 k 个值。返回一个元组 (values,ind...转载 2019-09-27 21:45:10 · 1865 阅读 · 0 评论 -
AlexNet网络结构分析及pytorch代码
2012年,Alex等人提出的AlexNet网络在ImageNet大赛上以远超第二名的成绩夺冠。CNN重新引起人们的关注。下面就AlexNet做一下简要的分析。也是记录一下今天一天的学习。AlexNet的特点:1、AlexNet一共有八层,五个卷积层和三个全连接层。由于是对ImageNet数据集进行分类,所以最后一层的输出会接上softmax,一共1000个输出(ImageNet一共有1000...原创 2019-08-07 22:48:56 · 12174 阅读 · 11 评论 -
训练一个分类器( LeNet-5)
来自pytorch官网的一个CIFAR10分类的例子,特地记录一下。数据加载及预处理import torchimport torchvisionimport torchvision.transforms as transformsfrom torch.autograd import Variable#下面是数据的预处理部分,由于torchvision的datasets的输出是[0,1...原创 2019-08-05 20:21:08 · 620 阅读 · 0 评论 -
Anaconda和pytorch在linux下安装教程
前几天,老板让我跑一个pytorch的代码,安装过程中遇到了很多的问题,不过最后一一解决了。现在就Anaconda的安装和pytorch的安装做一下详细介绍;Anaconda安装:首先我们得确认我们所要安装的Anaconda的版本,我这里选择的是Anaconda3,安装包可以去Anaconda官网下载后传到linux上安装,或者可以在linux上输入wget https://repo.ana...原创 2019-08-01 18:03:53 · 4217 阅读 · 0 评论 -
一个7×7的卷积核可以用三个3×3的卷积核替代,一个5×5的卷积核可以有两个3×3的卷积核替代
从图上我们可以看出,一个30×30的图像经过一个7×7(49个参数)的卷积核之后,输出的feature map的大小为24×24,与经过三个3×3卷积核(27个参数)之后的的输出是一致的。经过一个5×5的卷积核(25个参数)之后,输出的feature map的大小为26×26,与经过两个3×3卷积核(18个参数)之后的的输出是一致的。可以很明显的看出,在输出相同大小的feature map的情...原创 2019-08-08 11:17:00 · 5421 阅读 · 0 评论 -
enumerate的用法
for i, data in enumerate(trainloader, 0): #data里面包含图像数据(inputs)(tensor类型的)和标签(labels)(tensor类型)。 inputs, labels = dataenumerate()用于可迭代\可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标.上面代码的0表示从...原创 2019-08-06 09:44:17 · 15581 阅读 · 0 评论 -
VGG网络结构
下面就VGG模型进行一下简要介绍。VGG有多个版本,我这里使用的VGG16来介绍的。下图是VGG16的网络模型,其中一共有13个卷积层,加上3个全连接层,卷积层用来提取特征,而全连接用来输出分类结结果。使用torchvision来调用VGG16模型:import torchvisionmodel = torchvision.models.vgg16(pretrained=False)...原创 2019-08-08 14:37:08 · 619 阅读 · 0 评论 -
卷积神经网络3D视觉化模型(数字识别)
直通车原创 2019-08-06 12:36:25 · 713 阅读 · 0 评论 -
Google Tensorflow 做了一个非常直观的神经网络 playground
Google Tensorflow 做了一个非常直观的神经网络 playground在浏览器上面玩转神经网络。原创 2019-08-06 12:39:38 · 2691 阅读 · 0 评论 -
安装cudann教程
1.首先安装好cuda。2.下载cudnn的安装,我这里用到的是cudnn v7.0版本,3.将下载下来的tar文件进行解压:$ tar -xzvf cudnn-9.0-linux-x64-v7.tgz4.接下来,在命令终端执行如下操作:$ cp cuda/include/cudnn.h /usr/local/cuda/include$ cp cuda/lib64/libcudn...原创 2019-08-10 10:44:49 · 2859 阅读 · 0 评论 -
PyTorch之保存加载模型
本文来自pytorch官网,主要讲述如何保存和导入模型。一般而言,保存和导入模型我们必须得熟悉三个核心函数:1.torch.save:将序列化的对象保存起来,可以使用这个函数去保存模型,张量和字典。并且使用Python的pickle去实现序列化(serialization)。2.torch.load:使用pickle的unpickling工具将pickled对象文件反序列化到内存中。3.t...翻译 2019-08-12 21:55:04 · 269 阅读 · 0 评论 -
X[:,0]和X[:,1]
X[:,0]表示对一个二维数组,取该二维数组第一维中的所有数据,第二维中取第0个数据,直观来说,X[:,0]就是取所有行的第0个数据, X[:,1] 就是取所有行的第1个数据。...原创 2019-09-18 09:07:45 · 290 阅读 · 0 评论 -
分类时,为什么不使用均方误差而是使用交叉熵作为损失函数
MSE(均方误差)对于每一个输出的结果都非常看重,而交叉熵只对正确分类的结果看重。例如:在一个三分类模型中,模型的输出结果为(a,b,c),而真实的输出结果为(1,0,0),那么MSE与cross-entropy相对应的损失函数的值如下:MSE:cross-entropy:从上述的公式可以看出,交叉熵的损失函数只和分类正确的预测结果有关系,而MSE的损失函数还和错误的分类有关系,该分类...转载 2019-09-18 21:38:59 · 3703 阅读 · 0 评论 -
训练集,测试集和验证集
假如将数据分成训练集和测试集的话,模型是在训练集上学的,但超参在测试集的测试结果的反馈下进行调整的,这显然也采到了测试集的信息。这样训出来的模型很有可能结果是,模型表现足够好(性能优秀)且在训练集和测试集上表现一致(看似没有过拟合),但放到新数据集上一看其泛化性能并不好。这是因为模型在整个数据集上其实发生了过拟合。我们把数据集按622划分为训练集、验证集、测试集。在训练集上训练,在验证集上验证模...原创 2019-09-19 10:59:28 · 408 阅读 · 0 评论 -
assert 的作用是什么?
assert这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常。原创 2019-09-19 14:33:22 · 731 阅读 · 0 评论 -
关于dropout
def dropout(X, drop_prob): #drop_prob是丢弃的概率 X = X.float() assert 0 <= drop_prob <= 1 keep_prob = 1 - drop_prob # 这种情况下把全部元素都丢弃 if keep_prob == 0: ...原创 2019-09-19 15:00:52 · 209 阅读 · 0 评论 -
pandas fillna()
fillna()会填充nan数据,返回填充后的结果。如果希望在原DataFrame中修改,则把inplace设置为True原创 2019-09-19 19:29:14 · 401 阅读 · 0 评论 -
卷积层特征可视化
import torchimport numpy as npfrom torchvision import datasetsimport torchvision.transforms as transforms# Set the parametersnum_workers = 0batch_size = 20# Converting the Images to tensors ...原创 2019-09-23 21:35:06 · 773 阅读 · 0 评论 -
1.pytorch学习
1.定义Tensors:torch.zeros(5,3)生成一个5*3的全是0的张量 >>>torch.zeros(5,3) tensor([[0., 0., 0.], [0., 0., 0.], [0., 0., 0.], [0., 0., 0.], [0., 0.,...原创 2019-08-04 14:26:57 · 155 阅读 · 0 评论