pytorch

PyTorch model prediction fail for single item

生来就可爱ヽ(ⅴ<●) 提交于 2021-02-08 08:52:31
问题 I use PyTorch and transfer learning to train mobilenet_v2 based classifier. I use a batch of 20 images during training and my test accuracy is ~80%. I try to use the model with single image for individual prediction and output is a wrong class. At the same time if I will take a batch from my test dataset and insert my single image in it instead of element 0 it will have a correct prediction. Prediction 0 will be a correct class. So model works for a batch but not for an individual item. If I

从零开始学Pytorch(零)之安装Pytorch

时光毁灭记忆、已成空白 提交于 2021-02-08 08:47:09
点击上方“ 计算机视觉cv ”即可“进入公众号” 重磅干货第一时间送达 Pytorch优势   聊聊为什么使用Pytorch,个人觉得Pytorch比Tensorflow对新手更为友善,而且现在Pytorch在学术界使用的得更多,大有逆袭Tensorflow之势。最近两年的顶会文章中,代码用Pytorch的比Tensorflow多。大家如果对Tensorflow也感兴趣,完全可以学习了Pytorch之后继续学习Tensorflow,基本原理都是相通的。让我们开始开启愉快的Pytorch学习之旅吧! 在Ubuntu系统或是windows系统安装Pytorch   首先打开Pytorch的官网:https://pytorch.org/。在首页我们可以看到有各种配置可选,我们这里选择CPU或是GPU的版本都可以。一般选择GPU版本的Pytorch,这样运行大型的程序速度会快很多。而要运行GPU的Pytorch,就需要在电脑(不管是Ubuntu系统还是windows系统)安装相应的CUDA9和cudnn7,这两个安装起来有时候会遇到一大堆问题,所以需要一步一步解决。推荐一个我写的在Ubuntu系统安装教程的博客,按照博客上写的一步步来就可以啦。 博客链接:https://blog.csdn.net/xiewenrui1996/article/details/102736238 。  

【论文介绍】MEAL V2

拜拜、爱过 提交于 2021-02-08 08:25:38
作者:Stan Kriventsov 编译:ronghuaiyang 转载自:AI公园 原文链接: https://mp.weixin.qq.com/s/001DpmGeapE3HECzFPVvEw ​ mp.weixin.qq.com 导读 一篇知识蒸馏+对抗训练的文章。 作者使用最近提出的MEAL技术(包括从多个大型老师网络使用蒸馏通过对抗学习得到更小的学生网络学习),使用224×224输入,在ImageNet上提升了ResNet-50的精度到80.67%, 没有外部训练数据和网络体系结构的修改。 从文章中我们能学到什么? 即使是一个相对较小的网络也可以通过训练用正确的方法达到大得多的网络的准确性。 在某种程度上,这并不奇怪,因为现代深层神经网络被设计成过参数化的,利用“彩票假说”描述的大量的随机初始化配置,一个更小的网络足以达到同样的性能,但是,在实践中可以实现还是非常了不起的。 先决条件(为了更好地理解论文,我们应该熟悉什么?) 知识蒸馏 对抗训练 讨论 集成技术,或集成学习,由多个ML模型的组合预测组成,是一种已知的提高预测精度的方法。它被广泛应用于Kaggle竞赛中,在这些竞赛中,即使以巨大的计算负载为代价,也要获得最佳的精度。然而,在大多数实际应用中,由于在预测期间运行每个模型所需的费用和时间,集成并不被广泛使用。 MEAL技术的想法,是从多个大型神经网络(教师

Pytorch安装(基于anaconda虚拟环境)

烂漫一生 提交于 2021-02-08 07:23:36
Pytorch安装倒腾了一上午终于搞定,记录一下安装过程. 1. 首先尝试官网的安装方式,但是网速太慢了. 除去 cudnn100 , t orchvision 和 pytorch 三个文件,其余可以直接从清华镜像源下载.   这三个包直接进入 官网, 使用多线程(我用idm下载的,最好在挂个代理或者VPN)下载后,离线安装.离线安装命令: conda install --use-local Pkg_name 2. 安装完成后报错,拷贝系统lib目录下相关文件到需求路径,测试成功. 执行如下代码,需要根据安装路径适当调整: cp /usr/lib/libstdc++.so. 6 /opt/anaconda/envs/torch_36/lib/python3. 6 /site-packages/torch/lib/ cp /usr/lib/libgomp.so. 1 /opt/anaconda/envs/torch_36/lib/python3. 6 /site-packages/torch/lib/ 拷贝完毕后进行测试,如下: 这样子测试GPU: torch.cuda.is_available() 更新时间:2019-1-24 上面一个一个安装太费事了,还是新建一个虚拟环境,直接用 pip install -r requirements.txt 比较方便.其中torch下载太慢了

【教程】基于Ubuntu系统的PyTorch虚拟环境配置

China☆狼群 提交于 2021-02-08 06:40:36
Editor: Veagau Time: 2019/10/17 [TOC] 一、PyTorch虚拟环境配置 该部分操作均在终端(terminal)命令行中执行,在桌面右击鼠标新建terminal即可。 若系统已经安装Anaconda,则可以跳过第一步(检验方法:命令行执行conda list,有返回结果则表示已经安装了Anaconda)。 安装Anaconda 。进入到安装包所在文件夹,执行: bash Anconda3-x.x.x-Linux-x86_64.sh 创建虚拟环境。 conda create -n <your-virtualenv-name> python=3.6 激活虚拟环境。 source activate <your-virtualenv-name> 如果激活成功,则命令指示符首部将出现由 小括号包含的虚拟环境名称 。 安装PyTorch。 此处PyTorch相关组件包的安装是在虚拟环境中进行的,与系统环境隔离。 打开 PyTorch官网 ,根据机器配置选择参数,复制网站提供的命令执行即可。 由于PyTorch从国外服务器下载过于缓慢,所以建议首先更换conda镜像下载源,以节省时间。 一般的深度学习机型的显卡为RTX系列的,在选择参数时 CUDA 项建议选择 10.1 版本,此处采用conda(包管理工具,类似与pip)进行安装,所以 Package

How to use pytorch to construct multi-task DNN, e.g., for more than 100 tasks?

瘦欲@ 提交于 2021-02-08 06:25:15
问题 Below is the example code to use pytorch to construct DNN for two regression tasks. The forward function returns two outputs (x1, x2). How about the network for lots of regression/classification tasks? e.g., 100 or 1000 outputs. It definitely not a good idea to hardcode all the outputs (e.g., x1, x2, ..., x100). Is there an simple method to do that? Thank you. import torch from torch import nn import torch.nn.functional as F class mynet(nn.Module): def __init__(self): super(mynet, self)._

中阶API建模范例

扶醉桌前 提交于 2021-02-08 05:56:07
公众号后台回复关键字: Pytorch ,获取项目github地址。 Pytorch的层次结构从低到高可以分成如下五层。 最底层为硬件层,Pytorch支持CPU、GPU加入计算资源池。 第二层为C++实现的内核。 第三层为Python实现的操作符,提供了封装C++内核的低级API指令,主要包括各种张量操作算子、自动微分、变量管理. 如torch.tensor,torch.cat,torch.autograd.grad,nn.Module. 如果把模型比作一个房子,那么第三层API就是【模型之砖】。 第四层为Python实现的模型组件,对低级API进行了函数封装,主要包括各种模型层,损失函数,优化器,数据管道等等。如torch.nn.Linear,torch.nn.BCE,torch.optim.Adam,torch.utils.data.DataLoader. 如果把模型比作一个房子,那么第四层API就是【模型之墙】。 第五层为Python实现的模型接口。Pytorch没有官方的高阶API。为了便于训练模型,作者仿照keras中的模型接口,使用了不到300行代码,封装了Pytorch的高阶模型接口torchkeras.Model。如果把模型比作一个房子,那么第五层API就是模型本身,即【模型之屋】。 我们将以线性回归和DNN二分类模型为例,直观对比展示在不同层级实现模型的特点。

可高效训练超大规模图模型,PyTorch BigGraph是如何做到的?

不问归期 提交于 2021-02-08 05:46:18
选自medium 作者: Jesus Rodriguez 机器之心编译 编辑:Panda Facebook 提出了一种可高效训练包含数十亿节点和数万亿边的图模型的框架 BigGraph 并开源了其 PyTorch 实现。 本文将解读它的创新之处,解析它能从大规模图网络高效提取知识的原因。 图(graph)是机器学习应用中最基本的数据结构之一。具体来说,图嵌入方法是一种无监督学习方法,可使用本地图结构来学习节点的表征。社交媒体预测、物联网模式检测或药物序列建模等主流场景中的训练数据可以很自然地表征为图结构。其中每一种场景都可以轻松得到具有数十亿相连节点的图。图结构非常丰富且具有与生俱来的导向能力,因此非常适合机器学习模型。尽管如此,图结构却非常复杂,难以进行大规模扩展应用。也因此,现代深度学习框架对大规模图数据结构的支持仍非常有限。 Facebook 推出过一个框架 PyTorch BigGraph:https://github.com/facebookresearch/PyTorch-BigGraph,它能更快更轻松地为 PyTorch 模型中的超大图结构生成图嵌入。 某种程度上讲,图结构可视为有标注训练数据集的一种替代,因为节点之间的连接可用于推理特定的关系。这种方法遵照无监督图嵌入方法的模式,它可以学习图中每个节点的向量表征,其具体做法是优化节点对的嵌入

训练超大规模图模型,PyTorchBigGraph如何做到?

跟風遠走 提交于 2021-02-08 05:26:32
   编辑:Panda    Facebook 提出了一种可高效训练包含数十亿节点和数万亿边的图模型的框架 BigGraph 并开源了其 PyTorch 实现。本文将解读它的创新之处,解析它能从大规模图网络高效提取知识的原因。      图(graph)是机器学习应用中最基本的数据结构之一。具体来说,图嵌入方法是一种无监督学习方法,可使用本地图结构来学习节点的表征。社交媒体预测、物联网模式检测或药物序列建模等主流场景中的训练数据可以很自然地表征为图结构。其中每一种场景都可以轻松得到具有数十亿相连节点的图。图结构非常丰富且具有与生俱来的导向能力,因此非常适合机器学习模型。尽管如此,图结构却非常复杂,难以进行大规模扩展应用。也因此,现代深度学习框架对大规模图数据结构的支持仍非常有限。   Facebook 推出过一个框架 PyTorch BigGraph:https://github.com/facebookresearch/PyTorch-BigGraph,它能更快更轻松地为 PyTorch 模型中的超大图结构生成图嵌入。   某种程度上讲,图结构可视为有标注训练数据集的一种替代,因为节点之间的连接可用于推理特定的关系。这种方法遵照无监督图嵌入方法的模式,它可以学习图中每个节点的向量表征,其具体做法是优化节点对的嵌入,使得之间有边相连的节点对的嵌入比无边相连的节点对的嵌入更近

How can I use LSTM in pytorch for classification?

谁说我不能喝 提交于 2021-02-08 01:58:06
问题 My code is as below: class Mymodel(nn.Module): def __init__(self, input_size, hidden_size, output_size, num_layers, batch_size): super(Discriminator, self).__init__() self.input_size = input_size self.hidden_size = hidden_size self.output_size = output_size self.num_layers = num_layers self.batch_size = batch_size self.lstm = nn.LSTM(input_size, hidden_size) self.proj = nn.Linear(hidden_size, output_size) self.hidden = self.init_hidden() def init_hidden(self): return (Variable(torch.zeros