
pytorch
雨浅听风吟
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
torchvison中make_grid详解
在本例中,padding未指定,因此默认值为1。因此,输出的网格图像的宽度将增加2个像素,变为226像素,高度为30,。在本例中,每行将添加2个像素宽的填充像素,而每列将添加2个像素高的填充像素。因此,输出的网格图像的高度将增加2个像素,宽度将增加16个像素。train_df.iloc[random_sel, 1:].as_matrix()/255. 选择了训练数据集中的8个样本(在random_sel数组中生成的随机索引)并将它们的像素值从0到255的范围缩放到0到1的范围,以便于在神经网络中进行处理。原创 2023-03-24 10:15:12 · 953 阅读 · 0 评论 -
torch.cat试验
import torcha=torch.tensor([[1,2,1],[2,2,2]])b=torch.tensor([[1,2,1],[2,2,2]])c=torch.cat((a,b),1)d=torch.cat((a,b))原创 2021-11-11 17:11:46 · 1699 阅读 · 0 评论 -
torch实现clip_by_tensor操作
先做个试验import torcha=torch.tensor([[1,2,3],[4,5,6]])b=torch.tensor([[2,1,9],[3,7,5]])c=(a>=b).float()c这里可以看出来是可一找到a>=b的数据,并输出布尔值def clip_by_tensor(t,t_min,t_max): t=t.float() result = (t >= t_min).float() * t + (t < t_min).flo原创 2021-11-11 13:27:17 · 2733 阅读 · 0 评论 -
pytorch最简单的数据读取器
import randomimport torchdef data_iter(batch_size, features, labels): num_examples = len(features) indices = list(range(num_examples)) random.shuffle(indices) # 样本的读取顺序是随机的 for i in range(0, num_examples, batch_size): j = torch.L原创 2021-10-22 10:15:26 · 177 阅读 · 0 评论 -
rknn调用pytorch模型(2)-转换为rknn模型并进行推理
通过rknn自带图形界面进行转化python3 -m rknn.bin.visualization不进行量化产生了文件原创 2021-05-21 18:28:39 · 4252 阅读 · 3 评论 -
rknn调用pytorch模型(1)-pytorch模型训练-onnx模型转换
https://github.com/WitcherOfFire/pytorch-rknn-utilization.git文件组成文件全保存在github上首先创建pytorch_linear_model.py 文件模型建立import torchnet=torch.nn.Sequential( torch.nn.Linear(1,10), torch.nn.ReLU(), torch.nn.Linear(10,1))print(net)训练-转换ON原创 2021-05-21 16:24:19 · 1380 阅读 · 0 评论 -
pytorch中index_select()
import torcha=torch.linspace(0,12,13).repeat(13,1)第一个参数是索引的对象,第二个参数0表示按行索引,1表示按列进行索引,第三个参数是一个tensor,就是索引的序号,比如b里面tensor[0, 2]表示第0行和第2行,c里面tensor[0, 2]表示第0列和第2列。b=torch.index_select(a,0,torch.tensor([0, 2]))print(b)print(b.shape)c=torch.index_sele原创 2021-05-13 14:25:54 · 141 阅读 · 0 评论 -
pytorch 中repeat函数
沿着指定的维度重复tensor。不同与expand(),本函数复制的是tensor中的数据。扩展(expand)张量不会分配新的内存,只是在存在的张量上创建一个新的视图(view),一个大小(size)等于1的维度扩展到更大的尺寸。repeat沿着特定的维度重复这个张量,和expand()不同的是,这个函数拷贝张量的数据。import torcha=torch.linspace(0,12,13)print(a)print(a.shape)b=a.repeat(13,1)print(b)原创 2021-05-13 13:26:01 · 884 阅读 · 0 评论 -
numpy中[:,1]和[...,1]的区别
写一个测试的代码import numpy as npa=np.array([[[1,2],[3,4]],[[5,6],[7,8]]])b=a[...,0]print(b,end="\n")为最后一维度下标为0的数取出来组成数组,降了一个维度b1=a[:,0]print(b1,end="\n")选取所有第一维度,在这些维度中选取第二维度中所有下标为0的值c=a[...,1]print(c,end="\n")为最后一维度下标为1提取出来组成数组,降了一个维度d=a[:,:,原创 2021-04-28 10:56:38 · 1734 阅读 · 0 评论 -
pytorch模型转化为rknn模型
首先pytorch模型要先转化为onxx模型,然后从onxx模型转化为rknn模型直接转化会出现如下问题,环境都是正确的,论坛询问后也没给出准确答案说是版本问题--> Loading model./final.pt ********************加载失败E Catch exception when loading pytorch model: ./final.pt!E Traceback (most recent call last):E File "rknn\api\rk原创 2021-04-23 17:38:18 · 3924 阅读 · 9 评论 -
将YoloV3模型的pytorch权重文件转化为onxx
pytorch训练有两种方式保存权重文件,一是保存模型本身文件另一种是保存state_dict文件保存state_dict文件速度较快但要先读取模型torch.save(model.state_dict(), 'logs/Epoch%d-Total_Loss%.4f-Val_Loss%.4f.pth'%((epoch+1),total_loss/(epoch_size+1),val_loss/(epoch_size_val+1)))torch.save(model, 'logs/Epoch%d-To原创 2021-04-23 16:52:53 · 1641 阅读 · 2 评论 -
视频图片添加灰色背景条-yolo前处理
import cv2import numpy as npfrom PIL import Imagedef greybox_image(image, size):# iw=640 ih=480 iw, ih = image.size w, h = size scale = min(w/iw, h/ih) nw = int(iw*scale) nh = int(ih*scale) image = image.resize((nw,nh), Image.原创 2021-04-22 17:30:50 · 440 阅读 · 0 评论 -
np.newaxis
import numpy as npa=np.array([1,2,3,45,5])print(a.shape)这里是一个一维的np数组(5,)使用np.newaxis效果就是在所在位置添加一个维度import numpy as npa=np.array([1,2,3,45,5])a1=a[:,np.newaxis]print(a1.shape)print(a1)效果就是(5, 1)[[ 1] [ 2] [ 3] [45] [ 5]] (1, 5)[[ 1 2原创 2021-04-11 15:38:46 · 276 阅读 · 0 评论 -
数据集处理-标签在文件夹上数据-划分训练集和验证集
这是一个花的数据集,标签为文件名分为daisy等,在这里我们希望分为train和val,其中train占90%,val占10%。import osfrom shutil import rmtree, copyimport random# 如果文件存在保证先删除然后再创建def mk_file(file_path): if os.path.exists(file_path): rmtree(file_path) os.mkdir(file_path)if _.原创 2021-04-09 15:49:12 · 1316 阅读 · 0 评论 -
AlexNet和花分类数据集
参考AlexNet和花分类数据集p不一定相等,也许像下面一边1一边2原创 2021-04-07 15:57:42 · 318 阅读 · 0 评论 -
RNN 循环神经网络 (分类)-pytorch
转载https://mofanpy.com/tutorials/machine-learning/torch/RNN-classification/循环神经网络让神经网络有了记忆, 对于序列话的数据,循环神经网络能达到更好的效果. 如果你对循环神经网络还没有特别了解, 请观看几分钟的短动画, RNN 动画简介 和 LSTM 动画简介 能让你生动理解 RNN. 接着我们就一步一步做一个分析手写数字的 RNN 吧.Mnistimport torchfrom torch import nnimport原创 2021-03-22 16:46:19 · 353 阅读 · 0 评论 -
CNN 卷积神经网络
转载https://mofanpy.com/tutorials/machine-learning/torch/CNN/文章目录MNIST手写数据CNN模型训练MNIST手写数据import torchimport torch.nn as nnimport torch.utils.data as Dataimport torchvision # 数据库模块import matplotlib.pyplot as plttorch.manual_seed(1) # reprodu原创 2021-03-21 18:01:03 · 230 阅读 · 0 评论 -
3.6Optimizer优化器-pytorch
转载https://mofanpy.com/tutorials/machine-learning/torch/optimizer/这节内容主要是用 Torch 实践 这个 优化器 动画简介 中起到的几种优化器, 这几种优化器具体的优势不会在这个节内容中说了, 所以想快速了解的话, 上面的那个动画链接是很好的去处.下图就是这节内容对比各种优化器的效果:伪数据为了对比各种优化器的效果, 我们需要有一些数据, 今天我们还是自己编一些伪数据, 这批数据是这样的:import torchimport原创 2021-03-19 17:48:33 · 129 阅读 · 0 评论 -
加速神经网络训练 (Speed Up Training)
转载https://mofanpy.com/tutorials/machine-learning/torch/intro-speed-up-learning/括以下几种模式:Stochastic Gradient Descent (SGD)MomentumAdaGradRMSPropAdam越复杂的神经网络 , 越多的数据 , 我们需要在训练神经网络的过程上花费的时间也就越多. 原因很简单, 就是因为计算量太大了. 可是往往有时候为了解决复杂的问题, 复杂的结构和大数据又是不能避免的, 所以原创 2021-03-19 16:39:47 · 448 阅读 · 0 评论 -
3.5批处理-pytorch-batch
转载https://mofanpy.com/tutorials/machine-learning/torch/train-on-batch/Torch 中提供了一种帮你整理你的数据结构的好东西, 叫做 DataLoader, 我们能用它来包装自己的数据, 进行批训练DataLoaderDataLoader 是 torch 给你用来包装你的数据的工具. 所以你要讲自己的 (numpy array 或其他) 数据形式装换成 Tensor, 然后再放进这个包装器中. 使用 DataLoader 有什么好处呢原创 2021-03-19 16:17:42 · 583 阅读 · 0 评论 -
3.4pytorch保存提取
转载https://mofanpy.com/tutorials/machine-learning/torch/save-reload/训练好了一个模型, 我们当然想要保存它, 留到下次要用的时候直接提取直接用, 这就是这节的内容啦. 我们用回归的神经网络举例实现保存提取.保存我们快速地建造数据, 搭建网络:torch.manual_seed(1) # reproducible# 假数据x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=原创 2021-03-19 15:38:31 · 132 阅读 · 0 评论 -
pytorch-快速搭建法
转载快速搭建快速搭建我们先看看之前写神经网络时用到的步骤. 我们用 net1 代表这种方式搭建的神经网络.class Net(torch.nn.Module): def __init__(self, n_feature, n_hidden, n_output): super(Net, self).__init__() self.hidden = torch.nn.Linear(n_feature, n_hidden) self.predict =原创 2021-03-19 13:31:43 · 149 阅读 · 0 评论 -
分类-学习笔记-classification
转载https://www.bilibili.com/video/BV1Vx411j7kT?p=12创立数据集我们创建一些假数据来模拟真实的情况. 比如两个二次分布的数据, 不过他们的均值都不一样.import torchimport matplotlib.pyplot as plt# 假数据n_data = torch.ones(100, 2) # 数据的基本形态x0 = torch.normal(2*n_data, 1) # 类型0 x data (tensor原创 2021-03-14 17:01:05 · 283 阅读 · 0 评论 -
regression-回归-pytorch
参考https://www.bilibili.com/video/BV1Vx411j7kT?p=11import torchfrom torch.autograd import Variableimport torch.nn.functional as F # 激励函数都在这import matplotlib.pyplot as pltunsqueeze 把一维数据变为2维数据,因为torch只会处理二维数据x = torch.unsqueeze(torch.linspace(-1,原创 2021-03-14 16:14:44 · 136 阅读 · 0 评论 -
激励函数-relu的梯度-pytorch解决implicitly created only for scalar outputs-张量输出梯度-学习笔记
参考激励函数激励函数解决不能用线性方程解决的问题会引发梯度爆炸nn是神经网络模块import torchimport torch.nn.functional as F # 激励函数都在这from torch.autograd import Variable# 做一些假数据来观看图像x = torch.linspace(-5, 5, 200) # x data (tensor), shape=(100, 1)x = Variable(x)将数值放入autograd原创 2021-03-14 14:29:32 · 467 阅读 · 0 评论 -
Variable变量
参考Variable变量import torchfrom torch.autograd import Variabletensor=torch.FloatTensor([[1,2],[3,4]])variable=Variable(tensor,requires_grad=True)这里可以写这个variable是否自动计算梯度print(tensor)print(variable)t_out=torch.mean(tensor*tensor)v_out=torch.mean(原创 2021-03-14 13:11:41 · 232 阅读 · 0 评论 -
Pytorch 搭建自己的YOLO3目标检测平台-学习笔记
参考Pytorch 搭建自己的YOLO3目标检测平台文章目录1什么是yolov32yolov3整体结构3特征提取网络3.1什么是残差网络1什么是yolov3图片导入会变成416*416的尺寸,不足部分加入灰条2yolov3整体结构具体daeknet53如下参考daeknet53主干部分提取网络叫做darknet-53主要作用是提取特征,其重要特点是使用了残差网络Residual,darknet53中的残差卷积就是进行一次3X3、步长为2的卷积,然后保存该卷积layer,再进行一次1X原创 2021-03-12 18:43:56 · 1420 阅读 · 0 评论 -
numpy和torch的对比
转载https://mofanpy.com/tutorials/machine-learning/torch/torch-numpy/Torch 自称为神经网络界的 Numpy, 因为他能将 torch 产生的 tensor 放在 GPU 中加速运算 (前提是你有合适的 GPU), 就像 Numpy 会把 array 放在 CPU 中加速运算. 所以神经网络的话, 当然是用 Torch 的 tensor 形式数据最好咯. 就像 Tensorflow 当中的 tensor 一样.当然, 我们对 Numpy原创 2021-03-11 23:13:21 · 1196 阅读 · 0 评论