torch
weixin_43751285
这个作者很懒,什么都没留下…
展开
-
pytorch多损失回传案例
一个输入两个输出的全连接网络import torchimport torch.nn as nnimport torch.nn.functional as Fclass LinearNet(nn.Module): def __init__(self): super(LinearNet, self).__init__() self.fc1 = nn.Linear(5, 4) self.fc2 = nn.Linear(4, 3) .原创 2021-05-24 18:04:03 · 2435 阅读 · 0 评论 -
dice损失函数
def dice_coefficient(y_true_cls, y_pred_cls, training_mask): ''' dice loss :param y_true_cls: :param y_pred_cls: :param training_mask: :return: ''' eps = 1e-5 intersection = torch.sum(y_true_cls * y_原创 2021-04-03 21:50:04 · 2581 阅读 · 0 评论 -
pytorch修改网络模型案例
以resnet为例子已经使用该方法修改好网络,定个眼。后续学习。原创 2021-04-03 21:40:20 · 541 阅读 · 0 评论 -
pytorch(8)线性回归实现
import torchimport matplotlib.pyplot as pltlr = 0.05# 设置随机种子 也就是间隔i次生成的数都一样 如果为1的话每次生成的都一样torch.manual_seed(1)# 随机生成数据集 # 生成正态分布 均值是 0 标准差是1# 什么是均值分布? 什么是正态分布?# torch.rand() 和 torch.randn() 一个是均匀分布 一个是正态分布x = torch.rand(20, 1) * 10y = 2 * x + (5原创 2020-12-21 12:07:48 · 82 阅读 · 0 评论 -
Character Region Awareness for Text Detection(2)
4 方法论我们的主要目标是在自然图像中精确定位每个字符。为此,我们训练了一个深层神经网络来预测字符区域和字符之间的亲和力。由于没有公共字符级的数据集,所以采用弱监督的方式对模型进行训练。// 这一段讲了craft需要实现的目标,和实现目标的方法:神经网络输出字符区域概率和字符间距概率。没有字符集别的数据集,通过弱监督训练而成。4.1 体系结构我们的主干网采用基于VGG-16的全卷积网络体系结构。我们的模型在解码部分与编码部分有拼接,这与U-net相似,因为它聚集了低水平的特征。最终输出有两个通道作为原创 2020-12-16 12:48:43 · 216 阅读 · 1 评论 -
Character Region Awareness for Text Detection(1)
文本检测算法:CRAFT一、摘要基于神经网络的场景文本检测方法近来才出现并在文本检测中取得很好的结果。过去的神经网络使用(world-level)以单词为边界数据集训练算法。使用该方法训练后的模型在检测任意形状表示的文本区域存在一定的缺陷。本文提取了一种新的场景文本检测方法,通过字符之间的亲和力(affinity)来有效的检测文本区域。为了克服缺少单个字符级注释问题,我们提出的框架即利用了合成图像的字符集注释还通过合成图像训练出模型检测出的真实图像的预估字符。为了估计字符之间的亲和力,使用新提出的亲和原创 2020-12-11 13:16:57 · 133 阅读 · 0 评论 -
pytorch(7)torch.squeeze()和torch.unsqueeze()
torch.squeeze()将为1维度的张量空间压缩torch.unsqueeze()扩充某一维度张量空间为1import numpy as npimport torchdef tensor_squeeze(): arr = np.ones((3,3,1)) t= torch.tensor(arr) t1= torch.squeeze(t) print(t.shape,t1.shape)def tensor_unsqueeze(): arr =.原创 2020-12-05 22:00:58 · 87 阅读 · 0 评论 -
pytorch(6)tensor_reshape()和tensor_transpose()函数
tensor_reshape()将原始张量修改为指定形状大小的张量。tensor_transpose()函数将原始张量的维度进行调换。import torchimport numpy as npdef tensor_reshape(): arr = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[1, 2, 3], [4, 5, 6], [7, 8, 9]], .原创 2020-12-05 21:59:18 · 517 阅读 · 0 评论 -
pytorch(5)torch.index_select()和torch.masked_select()函数
torch.index_select()是访问指定维度的下标张量。torch.masked_select()是传入两个等大小的张量一个是常规张量,一个是布尔张量。常规张量根据布尔张量保存对应位置布尔张量为True的常规常量。import torchimport numpy as npdef tensor_indexSelect(): arr = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[1, .原创 2020-12-05 21:56:43 · 487 阅读 · 0 评论 -
pytorch(4)torch.chunck()和torch.split()函数
torch.chunck()函数是将指定维度的张量拆成n份。torch.split()函数是将指定维度的张量等步长拆分,具体拆分几份看步长。import torchimport numpy as npdef tensor_chunck(): arr = np.ones([3, 3,3]) t = torch.tensor(arr) print(t) # torch.chunck()函数是将指定维度的张量拆成2份 t1 = torch.chunk(t,2.原创 2020-12-05 21:52:53 · 780 阅读 · 0 评论 -
pytorch(3)torch.cat()和torch.stack()
在进行cv相关实验中我们用的比较多的都是torch.cat()和torch.stack()函数。其中cat()函数的功能是在当前维度进行数据的拼接。stack()函数首先将当前维度及其以后维度的数据向后移动一位,将该位置的大小修改为1然后在进行拼接。这两个函数的区别是cat()函数不会进行维度扩展,stack()函数会进行维度扩展。以下从代码角度去理解这两个函数。import numpy as npimport torc原创 2020-12-05 10:33:18 · 136 阅读 · 0 评论 -
pytorch张量创建(2)
在pytorch0.4.0之前版本中 张量(tensor)仅仅具有存值功能的。如果想对其进行求导运算只有将其放入到Variable函数中才具有求到功能。在该版本之后Variable函数的功能直接并入到tensor中。主要需要学习的张量创建方法:import torchimport numpy as np# 通过 torch.tensor()创建# 主要参数 data list或者np数组,dtype 数据类型,device 运行设备, requires_grad 是否计算梯度。de.原创 2020-12-04 18:21:30 · 324 阅读 · 1 评论 -
标量,向量和张量之间的关系?
在这里只说一下简单的个人能理解。如有错误请批评指正。在很早的时候我们都学过什么是标量和向量了。一般情况我们定义标量只有大小叫做标量。标量仅仅描述一个东西数量的多少?比如衣服多大码呀,身高有多高呀?这些表示大小和长度的仅仅用标量去说明它的数量就行了。但是在力学需要了解它的受力方向于是就有了向量。向量是既有大小又有方向。也就是说你不仅能够通过大小观察出它的多少,也能够通过方向去判断它的作用方向。张量其实就是在向量的基础上进一步的拓展去表达向量没有表达的东西,比如你如何表达一个物体任意点的受理情况,你单原创 2020-12-04 17:51:30 · 1092 阅读 · 0 评论 -
cuda11+torch1.7.0+ImportError: numpy.core.multiarray failed to import
cuda11+torch1.7.0在使用该命令安装torch的时候:pip install torch===1.7.0+cu110 torchvision===0.8.1+cu110 torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html安装成功后,测试环境报错ImportError: numpy.core.multiarray failed to import。通过网上查找资料发现一般情况都是卸载nump原创 2020-12-04 16:06:53 · 963 阅读 · 0 评论 -
GeForce RTX 3080 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
1.通过最近装cuda环境研究发下仅仅通过以下命令是不能够测试cuda是否可以正常使用的。import torch# 我在python的命令环境测试该命令 返回是True的但是在run torch程序的时候报错torch.cuda.is_available()2.如果想要测是你的cuda版本torch是否可以使用,使用以下命令测试可能会更好。import torchtorch.zeros(1).cuda()如果报错是GeForce RTX 3080 with CUDA capabilit原创 2020-12-04 15:58:33 · 14104 阅读 · 4 评论 -
pytorch创建张量
pytorch张量创建:将numpy转化为tensor的方法: torch.Tensor(),torch.from_numpy()创建指定数字大小或者指定shape的张量:torch.zeros(input=shape形状),torch.zeros_like(张量)根据概率创建张量。import torchimport numpy as np# 1.首先通过np.ones((x,x)) 创建一个 x*x大小的矩阵# 2.然后通过torch.tensor(data) 将一个numpy数据原创 2020-12-03 17:35:22 · 838 阅读 · 0 评论 -
RTX3080+cuda问题
1.在运行pytorch程序的时候报这样的错:GeForce RTX 3080 with CUDA capability sm_86 is not compatible with the current PyTorch installation. The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_61 sm_70 sm_75 compute_37.具有CUDA功能的GeForce RTX 3080 sm原创 2020-11-12 17:53:36 · 18174 阅读 · 9 评论 -
ubuntu20配置cuda环境
一、下载驱动1.通过以下这条命令查到你电脑所需要的驱动。ubuntu-drivers devices2.通过上述命令也可能返回为空什么都不显示,添加官方ppa的源,在更新以下就好了。sudo add-apt-repository ppa:graphics-drivers/ppasudo apt-get update3.通过指定版本安装显卡,安装失败,未找到对应版本的显卡。我就只能试试其它方法。4.让其自动安装显卡sudo ubuntu-drivers autoinstall5.安装原创 2020-11-12 12:14:59 · 3032 阅读 · 1 评论