PyTorch
文章平均质量分 52
Mr.Q
纸上得来终觉浅,绝知此事要躬行。 ---陆游
展开
-
实现pytorch版的mobileNetV1
这里是根据网络结构,搭建模型,用于图像分类任务。原创 2024-01-06 18:33:09 · 890 阅读 · 0 评论 -
python 分割任务的独热编码
"""@file_name: one_hot.py@author: zxq@copyright: pi@date: 2020/6/16"""import cv2import numpy as npdef encode_onehot(label, color_list): """ Convert a segmentation image label array to one-hot format by replacing each pixel va.原创 2020-11-23 10:11:28 · 413 阅读 · 1 评论 -
softmax,log_softmx,nll_loss和CELoss之间的关系
softmax,log_softmx,nll_loss和CELoss之间的关系原创 2023-01-18 10:13:21 · 580 阅读 · 0 评论 -
window下同时使用不同型号显卡
配置不同型号的双显卡,从硬件到软件需要注意的问题。原创 2022-07-08 14:27:02 · 1427 阅读 · 0 评论 -
VOC Dataset (解析voc数据集、mosaic增强、voc转labelme)
自定义的目标检测Dataset示例原创 2021-12-21 17:07:07 · 1795 阅读 · 5 评论 -
mmclassification backbone04-mobilenetV3
前景概述(1)mobilenetV2;(2)mobilenetV3主要贡献简单来说,有三点,一是SE-Net优化了InvertedResidual,二是使用NAS搜索出最优的网络结构,三是提出了新的激活函数h-swish.mobilenetV3论文https://arxiv.org/pdf/1905.02244.pdfmobilenetV3网络结构(Large)网络结构逐层分析第1层conv2d,结构是conv2d + bn + HSwish. 注意这里的激活函数是HSw.原创 2021-08-06 17:12:09 · 409 阅读 · 0 评论 -
mmclassification backbone03-mobilenetV2
mobilenetV2论文:https://arxiv.org/pdf/1801.04381.pdfmobilenetV2网络结构:网络结构逐层分析第1层是普通的conv2d+bn+relu6. mmclassification实现层层封装,不好看,这里贴简单实现。ef conv_bn(inp, oup, stride): return nn.Sequential( nn.Conv2d(inp, oup, 3, stride, 1, bias=False),.原创 2021-08-06 10:24:22 · 575 阅读 · 0 评论 -
mmclassification backbone02-LeNet5
lenet5简单来说,就是3个卷积层,加上2个全连接层。如下所示(1)参数num_classes=-1, 则用作backbone,不限制输入图片大小,网络结构由2个conv+tanh+avgpool2d、1个conv+tanh,共3个卷积层组成。(2)参数num_classes>0, 则用作分类器,限制输入图片大小(b, 1, 32, 32),前面3个卷积层后,先view或者squeeze成一维向量,再接分类器头,该头由2个全连接层组成,即linear+tanh+linear.class原创 2021-08-05 10:23:53 · 163 阅读 · 0 评论 -
mmclassification backbone01-AlexNet
AlexNet是直筒结构。(1) 参数num_classes=-1,则用作backbone,该backbone有3个conv+relu+maxPooling,中间2个conv+relu,共含5个卷积组成。(2) 参数num_classes>0,则用作分类网络,前面的5层卷积后,先view,再接分类器,该分类器由2个dropout+linear+relu、1个linear,共含3个全连接层组成。@BACKBONES.register_module()class AlexNet(BaseB原创 2021-08-05 09:42:03 · 246 阅读 · 0 评论 -
网络搭建-tensorRT c++ api和python pytorch api的对比
以lenet5为例(2个卷积 + 3个全连接层)。1.Python api (pytorch) def __init__(self): super(Lenet5, self).__init__() self.conv1 = nn.Conv2d(1, 6, kernel_size=5, stride=1, padding=0) self.pool1 = nn.AvgPool2d(kernel_size=2, stride=2, padding=原创 2021-07-22 16:19:15 · 735 阅读 · 0 评论 -
Assertion failed: (smVersion < SM_VERSION_A100) && “SM version not supported in this NVRTC version“
1. 环境:window10TensorRT-7.0.0.11cuda 10.2cudnn 8.0.3刚开始以为是TensorRT版本太低,7.0换成7.2.3,还是报一样的错误。即环境window10TensorRT-7.2.3cuda 10.2cudnn 8.0.3也不行。2.环境升级cuda版本,由cuda10.2升级到11.0。报新的错误信息:C:\source\rtSafe\cuda\cudaConvolutionRunner.cpp原创 2021-07-14 15:48:36 · 1447 阅读 · 1 评论 -
使用cuda和tensorrt加速对比-C++部署pytorch模型
1.网络模型和数据SSD网络,图片大小(w,h)=(480, 640)SSD检测结果2.cuda加速处理一张图片的时间[ 0 ] 695.201 ms.[ 1 ] 42.9589 ms.[ 2 ] 42.2552 ms.[ 3 ] 40.0333 ms.[ 4 ] 40.5067 ms.[ 5 ] 42.2043 ms.[ 6 ] 42.2497 ms.[ 7 ] 43.8587 ms.[ 8 ] 41.9123 ms.[ 9 ] 42.1796 ms.[ 10原创 2021-05-05 09:47:02 · 2229 阅读 · 0 评论 -
ubuntu 编译onnxruntime源码
编译成功截图:1.拉取源码# clone指定分支 发布版1.7.2git clone -b rel-1.7.2 https://github.com/microsoft/onnxruntime.git# 拉取子项目git submodule update --init --recursive拉取子项目非常耗时,可以点击下面的子项目链接,下载下来,再解压复制到对应的目录中检查是否还有子类项目需要拉取:git submodule update --init --rec.原创 2021-04-29 14:55:24 · 3528 阅读 · 0 评论 -
Tensor的view, reshape, resize, permute, transpose, contiguous操作
1. view(返回视图)功能是返回一个新的Tensor,这个Tensor具有之前相同的元素,只不过shape不同。>>> x = torch.randn(4, 4)>>> x.size()torch.Size([4, 4])>>> y = x.view(16)>>> y.size()torch.Size([16])>>> z = x.view(-1, 8) # the size -1 is .原创 2021-04-27 18:08:45 · 1352 阅读 · 1 评论 -
常用Loss总结
1. BCELoss用于二分类任务,二值交叉熵(Binary Cross Entropy)。公式如下,其中y是真实值,是预测值:使用方式如下:class torch.nn.BCELossExamples:: >>> m = nn.Sigmoid() >>> loss = nn.BCELoss() ...原创 2019-09-12 15:27:18 · 11206 阅读 · 2 评论 -
unable to get repr for <class ‘torch.Tensor‘>
问题描述:计算BCE Loss使用pytorch接口self.bce_loss = nn.BCELoss()self.bce_loss(pred_cls, tcls)问题原因:pred_cls没有归一化的0到1之间。解决办法:self.bce_loss(torch.sigmoid(pred_cls), tcls)原创 2020-11-02 09:19:45 · 2624 阅读 · 0 评论 -
PyTorch实现YOLOv3
1, 网络结构左边Darknet网络结构,右边YOLOv3网络结构,详细解析可参考链接 2, pytorch代码实现# -*- coding: utf-8 -*-# @Time : 2020/10/20 下午10:17# @Author : zxq# @File : YOLOv3_model.py# @Software: PyCharmfrom collections import OrderedDictimport t...原创 2020-10-21 22:55:17 · 1871 阅读 · 0 评论 -
YOLOv3-step1根据网络预测结果求预测框
def predict_transform(prediction, inp_dim, anchors, num_classes, CUDA=True): """ https://blog.paperspace.com/how-to-implement-a-yolo-v3-object-detector-from-scratch-in-pytorch-part-3/ :param prediction: [2, 255, 13, 13]. 这个255=(1+4+80)*3 :.原创 2020-10-20 14:51:43 · 428 阅读 · 0 评论 -
pytorch 源码AlexNet阅读和使用
官方源码:https://pytorch.org/docs/stable/_modules/torchvision/models/alexnet.html#alexnettorchvision.models.alexnetimport torchimport torch.nn as nnfrom .utils import load_state_dict_from_url__all__ = ['AlexNet', 'alexnet']model_urls = { 'ale.原创 2020-09-22 23:44:25 · 1756 阅读 · 0 评论 -
PyTorch-YOLOv3源码阅读-Dataset
官方源码:https://github.com/eriklindernoren/PyTorch-YOLOv3class ListDataset(Dataset): def __init__(self, list_path, img_size=416, augment=True, multiscale=True, normalized_labels=True): with open(list_path, "r") as file: self.img_fi.原创 2020-09-11 16:45:15 · 587 阅读 · 4 评论 -
numpy(ndarray)和pytorch(tensor)对应点相乘、矩阵相乘操作对比总结
np.multiply(A, B) 或者。原创 2020-09-10 23:09:07 · 3537 阅读 · 2 评论 -
python将数据分成训练集和测试集
一,分割任务"""将数据集随机分成训练集、测试集传入参数:ratio = 0.7 # 训练样本比例path = "/home/pi/20190701_0705" # 数据路径new_path = "/home/pi/20190701_0705_new2" # 保存路径使用方法:temp = Generate_Train_and_Test(path, new_path,...原创 2019-07-09 17:27:49 · 9781 阅读 · 2 评论 -
pytorch 项目代码详细解析
1,_FILE_PATH = os.path.dirname(os.path.abspath(__file__))_file_ :文件当前的位置;os.path.abspath(_file_):当前当前文件的绝对路劲os.path.dirname(os.path.abspath(_file_)):dir就是文件夹,即获取当前文件的所在文件夹。2,sys.path....原创 2019-07-08 17:26:32 · 2847 阅读 · 0 评论 -
PyTorch学习笔记
参考1:https://www.jianshu.com/p/d5af8aea4229参考2:https://pytorch.org/docs/stable/index.html1、torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0,dilation=1, groups=1, bias=T...原创 2019-06-24 15:30:50 · 349 阅读 · 0 评论 -
python读取文件夹中特定文件名的文件
import cv2import osdata_path = '/home/pi/bg/'img_list = os.listdir(data_path)save_path = '/home/pi/bg/'if not os.path.exists(save_path): os.mkdir(save_path)for i in range(0, len(img_list...原创 2019-07-02 08:21:32 · 12772 阅读 · 0 评论 -
view之前为何先用函数contiguous()
output = model( data )[ 0 ] # shape: (100, 321, 481)output = output.permute(1, 2, 0) # 维度置换 shape: (321, 481, 100)output = output.contiguous().view(-1, args.nChannel) # (321x481, 100)view原矩阵...原创 2018-09-06 09:44:35 · 2932 阅读 · 0 评论 -
tensor 和 numpy 的互相转换
为什么要相互转换:1. 要对tensor进行操作,需要先启动一个Session,否则,我们无法对一个tensor比如一个tensor常量重新赋值或是做一些判断操作,所以如果将它转化为numpy数组就好处理了。下面一个小程序讲述了将tensor转化为numpy数组,以及又重新还原为tensor:2. Torch的Tensor和numpy的array会共享他们的存储空间,修改一个会导致另外的一...原创 2018-09-05 15:03:19 · 26863 阅读 · 0 评论 -
PyTorch 对应点相乘、矩阵相乘
一,对应点相乘,x.mul(y) ,即点乘操作,点乘不求和操作,又可以叫作Hadamard product;点乘再求和,即为卷积data = [[1,2], [3,4], [5, 6]]tensor = torch.FloatTensor(data)tensorOut[27]: tensor([[ 1., 2.], [ 3., 4.], [ 5....原创 2018-09-07 21:14:27 · 110671 阅读 · 1 评论 -
tensorboard安装和使用
一、安装tensorflow因为我的使用anconda安装了pytorch,python3.6,所以新建一个环境tensorflow环境:conda create -n tf python=3.6然后输入:conda activate tf# 或source activate tf关闭tf环境命令:source deactivate tf激活tensorflow环...原创 2019-07-04 12:00:05 · 11043 阅读 · 0 评论 -
npy转image图像并保存
1. 用于分类模型:import numpy as npimport scipy.miscimport cv2import os# DF1path = "/home/pi/工作/predict1/"npy_list = os.listdir(path)save_path = "/home/pi/predict1_img/"if not os.path.exists(save...原创 2019-07-04 17:00:41 · 6810 阅读 · 1 评论 -
远程其他电脑跑程序的常用命令
# 连接远程电脑ssh 192.168.16.220# 查看ls# 进入cd project/# 新建文件夹mkdir zxq# 进入cd zxq# 另开终端后, 查看自己的ipifconfig# 然后将代码传送到远程电脑的当前文件夹, 前面是自己的路径scp -r -v 192.168.17.85:/home/pi/pytorch_seg_190617 ....原创 2019-07-16 10:20:02 · 1750 阅读 · 0 评论 -
Pytorch版DCGAN图像生成技术
参考:https://github.com/devnag/pytorch-generative-adversarial-networks/blob/master/gan_pytorch.pyhttps://blog.csdn.net/sunqiande88/article/details/80219842https://blog.csdn.net/xiaoxifei/article/d...原创 2019-07-24 10:41:59 · 5079 阅读 · 12 评论 -
pytorch实现GAN
本文转自:https://www.pytorchtutorial.com/50-lines-of-codes-for-gan/https://blog.csdn.net/qinglingLS/article/details/91480550一、什么是 GAN?在进入技术层面之前,为照顾新入门的开发者,先来介绍下什么是 GAN。2014 年,Ian Goodfellow 和...转载 2019-07-19 17:45:31 · 45152 阅读 · 50 评论 -
pytorch版Unet实现医学图像分割
源码和数据已上传至github,方便下载使用。GitHub - Z-XQ/unet_pytorch: using pytorch to implement unet network for liver image segmentation.using pytorch to implement unet network for liver image segmentation. - GitHub - Z-XQ/unet_pytorch: using pytorch to implement unet ne原创 2019-07-23 11:03:57 · 17494 阅读 · 93 评论 -
免费GPU——Google Colab提供的Tesla K80
Google Colab简介Google Colaboratory是谷歌开放的一款研究工具,主要用于机器学习的开发和研究。这款工具现在可以免费使用,但是不是永久免费暂时还不确定。Google Colab最大的好处是给广大的AI开发者提供了免费的GPU使用!GPU型号是Tesla K80!你可以在上面轻松地跑例如:Keras、Tensorflow、Pytorch等框架。(1)12G显存,...原创 2019-08-12 09:53:11 · 5901 阅读 · 1 评论 -
python 两直线的夹角
class Point(object): def __init__(self, x=0, y=0): self.x = x self.y = yclass Line(object): # 直线由两个点组成 def __init__(self, p1=Point(0, 0), p2=Point(2, 2)): self.p...原创 2019-08-22 10:17:52 · 9228 阅读 · 0 评论 -
02 YOLO系列总结
参考:https://arxiv.org/abs/1506.02640https://www.jianshu.com/p/13ec2aa50c12https://www.imooc.com/article/36391https://www.jianshu.com/p/f87be68977cbhttps://www.cnblogs.com/xiongzihua/p/9315183...原创 2019-10-07 14:57:45 · 763 阅读 · 0 评论 -
RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.DoubleTensor) should be the
出错位置: train_label_batch = torch.from_numpy(train_label_batch)解决办法:将数据类型转换成FloatTensor即可,如下,加一行代码Tensor.type(torch.FloatTensor)train_label_batch = torch.from_numpy(train_label_batch)train_labe...原创 2018-09-07 20:52:11 · 40739 阅读 · 0 评论