IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 论文复现过程中的一些问题总结 -> 正文阅读

[人工智能]论文复现过程中的一些问题总结

1、numpy.reshape

numpy.reshape(a, newshape, order='C')

在不更改其数据的情况下为数组赋予新形状。

  • a:

    数组——需要处理的数据

  • newshape :

    新的格式——整数或整数数组,如 (2,3) 表示2行3列。新的形状应该与原来的形状兼容,即行数和列数相乘后等于a中元素的数量。如果是整数,则结果将是长度的一维数组,所以这个整数必须等于a中元素数量。若这里是一个整数数组,那么其中一个数据可以为-1。在这种情况下,这个个值python会自动从根据第二个数值和剩余维度推断出来

  • order:

    可选范围为{‘C’, ‘F’, ‘A’}。使用索引顺序读取a的元素,并按照索引顺序将元素放到变换后的的数组中。如果不进行order参数的设置,默认参数为C

    1. “C”:指的是用类C写的读/索引顺序的元素,最后一个维度变化最快,第一个维度变化最慢。以二维数组为例,简单来讲就是横着读,横着写,优先读/写一行
    2. “F”:是指用FORTRAN类索引顺序读/写元素,最后一个维度变化最慢,第一个维度变化最快。竖着读,竖着写,优先读/写一列。注意,“C”和“F”选项不考虑底层数组的内存布局,只引用索引的顺序;
    3. “A”:选项所生成的数组的效果与原数组a的数据存储方式有关,如果数据是按照FORTRAN存储的话,它的生成效果与”F“相同,否则与“C”相同

2、torch.nn.Unfold:滑动裁剪

从批处理输入张量中提取滑动局部块。

torch.nn.Unfold(kernel_size, dilation=1, padding=0, stride=1)
  1. kernel_size:滑动窗口的size
  2. stride:空间维度上滑动的步长,Default: 1
  3. padding:在输入的两侧添加的隐式零填充. Default: 0
  4. dilation:空洞卷积的扩充率,Default: 1

在这里插入图片描述

torch.nn.Unfold按照官方的说法,既从一个batch的样本中,提取出滑动的局部区域块,也就是卷积操作中的提取kernel filter对应的滑动窗口。

  1. 由上可知,torch.nn.Unfold的参数跟nn.Conv2d的参数很相似,即,kernel_size(卷积核的尺寸),dilation(空洞大小),padding(填充大小)和stride(步长)
  2. 官方解释中:unfold的输入为 ( N , C , H , W ) (N,C,H,W) (N,C,H,W),其中 N N N为batch_size, C C C是channel个数, H H H W W W分别是channel的长宽。
    unfold输出为 ( N , C × ∏ ( ?kernel_size? ) , L ) \left(N, C \times \prod(\text { kernel\_size }), L\right) (N,C×(?kernel_size?),L),其中 ∏ ( ?kernel_size? ) \prod(\text { kernel\_size }) (?kernel_size?) k e r n e l _ s i z e kernel\_size kernel_size长宽的乘积。 L L L ( H , W ) (H,W) (H,W)根据 k e r n e l _ s i z e kernel\_size kernel_size尺寸滑动裁剪后,得到的区块的数量
  • Input: ( N , C , ? ) (N,C,*) (N,C,?)

  • Output: ( N , C × ∏ ( ?kernel_size? ) , L ) \left(N, C \times \prod(\text { kernel\_size }), L\right) (N,C×(?kernel_size?),L)
    L = ∏ d ∈ ( 0 , 1 ) ? ?feature_size? [ d ] + 2 ?padding? [ d ] ? ?dilation? [ d ] ? ( ?kernel_size? [ d ] ? 1 ) ? 1 ?stride [ d ] + 1 ? . L=\prod_{d \in(0,1)}\left\lfloor \frac{\text { feature\_size }[\mathrm{d}]+2 \text { padding }[\mathrm{d}]-\text { dilation }[\mathrm{d}] \cdot(\text { kernel\_size }[\mathrm{d}]-1)-1}{\text { stride}[\mathrm{d}]}+1\right\rfloor. L=d(0,1)???stride[d]?feature_size?[d]+2?padding?[d]??dilation?[d]?(?kernel_size?[d]?1)?1?+1?.

inputs = torch.randint(0,9,(1, 2, 4, 4))
'''
tensor([[[[4, 7, 1, 4],
          [4, 2, 8, 1],
          [3, 6, 0, 8],
          [0, 7, 6, 3]],
         [[4, 8, 4, 6],
          [6, 6, 6, 3],
          [7, 7, 5, 0],
          [2, 1, 7, 7]]]])
'''
unfold  = torch.nn.Unfold(kernel_size=(2, 2), stride=2)
patches = unfold(inputs.float())
'''
tensor([[[4., 1., 3., 0.],
         [7., 4., 6., 8.],
         [4., 8., 0., 6.],
         [2., 1., 7., 3.],
         [4., 4., 7., 5.],
         [8., 6., 7., 0.],
         [6., 6., 2., 7.],
         [6., 3., 1., 7.]]])
'''

在这里插入图片描述


3、灰度图和彩图的区别

3.1、属性上的区别

先看一张灰度图的属性:

在这里插入图片描述

灰度图的位深度为8

再看彩图的属性:

在这里插入图片描述

彩图的位深度为24

3.2、读取后存储的区别

from skimage import io

分别读取这两张图像:

gray = io.imread("test/lena.BMP")
color = io.imread("test/lena.png")

查看变量属性:

在这里插入图片描述


4、np.unravel_index:获取索引

获取一个/组int类型的索引值在一个多维数组中的位置。

A = np.random.randint(0,10,size=(2,3))
'''
array([[1, 3, 8],
       [0, 4, 2]])
'''
ind_max = np.argmax(A) #2

此时得到的索引是将A数组flattern(展成一维数组)后的索引:

A.flatten()
'''
[1 3 8 0 4 2]
'''

可以看到索引确实是2。

那如何得到对应的原数组的索引呢?

ind_max_src = np.unravel_index(ind_max, A.shape) #(0, 2)
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:22:35  更:2022-04-09 18:24:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:28:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码