1.python中 return 的用法:return 语句就是讲结果返回到调用的地方,并把程序的控制权一起返回 程序运行到所遇到的第一个return即返回(退出def块),不会再运行第二个return。

代码实测搞清楚:

def test_return(x):for i in range(3):print(1)if x > 0:return xtest_return(-1)1
1
1def test_return(x):for i in range(3):print(1)if x > 0:return xtest_return(1)1

可以看出return后直接退出def块,要实现循坏要将其替代掉

2.pytorch中nn.ReLU(inplace=True)含义

在例如nn.LeakyReLU(inplace=True)中的inplace字段是什么意思呢?有什么用?

inplace=True的意思是进行原地操作,例如x=x+5,对x就是一个原地操作,y=x+5,x=y,完成了与x=x+5同样的功能但是不是原地操作,上面LeakyReLU中的inplace=True的含义是一样的,是对于Conv2d这样的上层网络传递下来的tensor直接进行修改,好处就是可以节省运算内存,不用多储存变量y

3.np.rot90()矩阵旋转90°或90°的倍数。默认逆时针旋转。

Examples
--------
>>> m = np.array([[1,2],[3,4]], int)
>>> m
array([[1, 2],[3, 4]])
>>> np.rot90(m)
array([[2, 4],[1, 3]])
>>> np.rot90(m, 2)
array([[4, 3],[2, 1]])

上面的参数2代表转2次90,如果想要顺时针2次90可用-2替代。

当上面的升级到3d时候

>>> m = np.arange(8).reshape((2,2,2))
>>> np.rot90(m, 1, (1,2))
array([[[1, 3],[0, 2]],[[5, 7],[4, 6]]])

前面的1参数已经介绍过了,这里主要介绍下后面的(1,2)这里代表第二维度和第三维的组成的面来旋转。参数前后顺序可以用

rot90(m, k=1, axes=(1,0)) is the reverse of rot90(m, k=1, axes=(0,1))
rot90(m, k=1, axes=(1,0)) is equivalent to rot90(m, k=-1, axes=(0,1))

(1,0)与(0,1)在当两个k为相反数的时候相等。

3d旋转实例如下:

import numpy as np
m = np.arange(8).reshape((2,2,2))
print('before',m[:,:,0])
p=np.rot90(m, 1, (0,1))
print('after',p[:,:,0])before [[0 2][4 6]]
after [[2 6][0 4]]

还要特别注意

flip : Reverse the order of elements in an array along the given axis.反向沿给定轴反转数组中元素的顺序(跟前面的[:,::-1,:]翻转第二维度是等效的)
fliplr : Flip an array horizontally.水平翻转阵列
flipud : Flip an array vertically.垂直翻转数组
m1=np.copy(m)
mp=m[::-1,:,:]
print('compare',mp[:,:,0])
m1p=np.flip(m1,0)
print('compare1',m1p[:,:,0])
compare [[4 6][0 2]]
compare1 [[4 6][0 2]]

4.set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

例子:

import randomh = set()
while (len(h) < 10):h.add(random.randint(10, 100))print(h){99, 36, 37, 70, 72, 73, 44, 28, 13, 60}

5.isinstance()判断某个对象是否属于某个类

如assert isinstance(output_size, (int, tuple))

判断output_size是int或tuple.都不是assert报错.

6.torch.mul() 和 torch.mm() 的区别.torch.mul(a, b)是矩阵a和b对应位相乘,a和b的维度必须相等,torch.mm(a, b)是矩阵a和b矩阵相乘.要求衔接维度相同.

import torcha = torch.rand(3, 2)
b = torch.rand(3, 2)
c = torch.rand(2, 3)print(torch.mul(a, b))  # 返回 3*2 的tensor,要求a,b各维度大小相同
print(torch.mm(a, c))   # 返回 3*3 的tensor,要求a,c的衔接维度相同(a的第二维度和c的第一维度)

python 近期用到的基础知识汇总(四)相关推荐

  1. python 近期用到的基础知识汇总(八)

    1.pytorch 的scatter()函数 scatter() 和 scatter_() 的作用是一样的,只不过 scatter() 不会直接修改原来的 Tensor,而 scatter_() 会. ...

  2. python 近期用到的基础知识汇总(六)

    1. Python列表索引批量删除. 一开始天真的一个一个用del函数删除如del list[id].然后发现删文件是按间隔来的(一个删除一个不动).后来想想就明白了,删除一个文件的同时list变短了 ...

  3. python 近期用到的基础知识汇总(五)

    1.pytorch中变量类型转换 将numpy矩阵转换为Tensor张量:sub_ts = torch.from_numpy(sub_img) #sub_img为numpy类型 将Tensor张量转化 ...

  4. python 近期用到的基础知识汇总(三)

    1.python __len__(self)详解 如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数.要让 len() 函数工作正常,类必须提供一个特殊方法__len__() ...

  5. python 近期用到的基础知识汇总(主要是skimage的相关矩阵变化函数)(二)

    1.skimage.segmentation.clear_border函数 clear_border(labels, buffer_size=0, bgval=0, in_place=False)主要 ...

  6. python 近期用到的基础知识汇总(主要是numpy和pytorch的相关矩阵变化函数)(一)

    ps两个库好多类似的函数傻傻分不清,总结下. 1.np.where where()的用法 首先强调一下,where()函数对于不同的输入,返回的只是不同的. 1当数组是一维数组时,返回的值是一维的索引 ...

  7. python 近期用到的基础知识汇总(七)

    1.os.path.split():按照路径将文件名和路径分割开. 例如 o='/media/HDD/nnUNet_raw/nnUNet_raw_data/Task009_Spleen/inferTs ...

  8. python基础知识资料-Python基础知识汇总

    原标题:Python基础知识汇总 1.Anaconda的安装 百度Anaconda的官网,下载左边的Python3.X版本 然后是设置路径,最后给出Jupyter notebook.具体参考: 猴子: ...

  9. python基础知识资料-学习Python列表的基础知识汇总

    千里之行,始于足下.要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好.今天,本喵带大家仔细温习一下Python的列表.温故而知新,不亦说乎. 当然,温习的同时也要发散思考,因为有些看似无关紧要 ...

最新文章

  1. php中关于mysqli和mysql区别
  2. cve-2018-2628 Weblogic反序列化漏洞实现反弹shell
  3. 调整分区后盘符丢失的资料怎么寻回
  4. Spring Boot【快速入门】
  5. BCGControlBar教程:Outlook Bars
  6. 安装Fontawesome4字体图标
  7. lesson3-字符串及其常用操作
  8. 常见索引结构—跳跃表
  9. gulp 安装时一直提示缺少模块( Cannot find module 'gulp-load-plugins')
  10. Android之popWindows底部弹出挡住了华为虚拟键盘问题
  11. 记录一次线上超时异常查询
  12. golang 数组、指针数组、数组指针使用总结
  13. Bean的拷贝之BeanUtils
  14. 背景透明,文字不透明效果
  15. linux程序没有对日志文件写的权限_好程序员云计算培训分享Linux文件权限简单说明...
  16. 《R语言初学指南》一1.4 实际案例
  17. 【VS】错误1error LNK1168: 无法打开 F:\C++6\prob\ConsoleApplication1\Debug\ConsoleApplication1.exe 进行写入
  18. ROS踩坑|warning:clock skew detected. Your build may be incomplete
  19. 看最近国内名人们对四川地震灾区的捐款
  20. XTU OJ 1309 唯一的子串

热门文章

  1. 【二分】Producing Snow @Codeforces Round #470 Div.2 C
  2. 给Lisp程序员的Python简介
  3. Comments on The Ph.D. grind------by Yishi
  4. 【python】Python的基本数据类型之数据转换
  5. centos7下安装nginx及常用命令
  6. 从入门到精通进阶篇 - 设置负载阶梯式压测场景(详解教程)
  7. app测试的过程和重点关注内容
  8. android bitmap着色,android开发 替换bitmap中的颜色值
  9. Given a list,rotate the list to right by k places, where k is nonegative.
  10. linux kvm图标需要安装的软件,KVM 图形化安装