张量操作
落_葉
这个作者很懒,什么都没留下…
展开
-
在Pytorch中实现tf.extract_image_patches的功能
tf.extract_image_patches是tensorflow用来从一张图像中提取多个patches的,其实现抽取patches的方式请移步一篇知乎的文章,那里介绍的很清楚。最近尝试在pytorch中来实现tf.extract_image_patches的功能,具体代码如下:一、tensorflow中tf.extract_image_patches从Tensor中提取patches1、提取单通道张量import tensorflow as tf# 创建两个张量大小为6*6,且为单通道 (原创 2020-08-19 14:12:22 · 2896 阅读 · 2 评论 -
pytorch 简单的tensor插值放大和缩小运算
放大2倍插值运算代码:def interpolate(raw_tensor): ''' 等效于F.interpolate(source, scale_factor=scale, mode="nearest") :param raw_tensor: (B, C, H, W) :return: (B, C, 2 * H, 2 * W) ''' b, c, h, w = raw_tensor.shape out = torch.zeros((b, c, h原创 2020-08-03 18:20:25 · 6431 阅读 · 0 评论 -
使用转置卷积和卷积分别实现 pytorch 中 nn.PixelShuffle 层的正运算和逆运算。
pytorch 中 nn.PixelShuffle 层主要是将Tensor的通道数降低4倍的同时将其分辨率扩大2倍,但整个过程是不会改变Tensor中的数值的。简单理解就是,nn.PixelShuffle 层的输入和输出是相同的。nn.PixelShuffle 层的具体运算请参见pytorch官方介绍,我主要是使用转置卷积来实现与 nn.PixelShuffle 层相同的功能;并可以使用卷积层实现其相反的功能,也就是它的逆运算。详细代码如下:一、使用转置卷积层实现nn.PixelShuffle 层的功能原创 2020-08-03 18:15:42 · 2763 阅读 · 3 评论 -
Pytorch 张量滤波中值替换
使用一个小尺寸的值都为1张量对一个大尺寸的张量进行中值滤波,将小尺寸张量对应卷乘大尺寸张量,并将卷乘得到的结果排序后将中值替换:import torchimport numpy as npdef medfilt(volume): kernel_size = torch.ones(3, 3) w, h = volume.shape[0], volume.shape[1] for i in range(h- 3 + 1): for j in range(w - 3原创 2020-07-17 19:02:58 · 2566 阅读 · 2 评论 -
在pytorch中取一个tensor的均值,然后该张量中的所有值与其对比!
Pytorch中的Tensor的shape是(B, C, W, H),对该tensor取均值并与所有值做对比代码如下:C, H, W = tensor.shape[1], tensor.shape[2], tensor.shape[3]for c in range(C): mean = torch.mean(x[0][c]) for h in range(H): for w in range(W): if x[0][c][h][w] >= mean: x[0][c][h][w] =原创 2020-07-17 17:11:05 · 4553 阅读 · 1 评论