阅读VON代码(一)

python类方法:静态方法(不需要传入self,和普通函数一样,只是与类相关,放入方便管理),类方法(第一个参数是cls。我们可以用类的实例调用类方法,也可以直接用类名来调用。),实例方法(一般方法,传入self)

@abstractmethod:抽象方法,含abstractmethod方法的类不能实例化,继承了含abstractmethod方法的子类必须复写所有abstractmethod装饰的方法,未被装饰的可以不重写,需要abc库

parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) # 自动将有关默认值的信息添加到每个参数帮助消息
opt, _ = parser.parse_known_args() # opt存储定义的参数,第二项是剩余参数

importlib.import_module:动态导入

lower() 方法转换字符串中所有大写字符为小写

vars()
说明:返回对象object的属性和属性值的字典对象

isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。

socket.gethostname() # 获取主机名

sys.executable :如果是Python脚本生成exe文件,则打印的是该exe文件的绝对路径。

Popen(cmd, shell=True, stdout=PIPE, stderr=PIPE)#子进程记录信息,可以使用Popen来创建进程,并与进程进行复杂的交互。
subprocess.call,该函数将一直等待到子进程运行结束,并返回进程的returncode。如果子进程不需要进行交互,就可以使用该函数来创建。

getattr() 函数用于返回一个对象属性值。
hasattr判断是否有属性

numpy模块的isnan方法仅支持对数值进行判断空值,因此传入的如果是字符串类型会报错
isinf无穷

transforms.ColorJitter类也比较常用,主要是修改输入图像的4大参数值:brightness, contrast and saturation,hue,也就是亮度,对比度,饱和度和色度。

npy文件——Numpy专用的二进制格式
np.load()和np.save()是读写磁盘数组数据的两个重要函数。使用时,数组会以未压缩的原始二进制格式保存在扩展名为.npy的文件中。
npz文件——压缩文件
使用np.savez()函数可以将多个数组保存到同一个文件中。
np.savez()函数的第一个参数是文件名,其后的参数都是需要保存的数组。传递数组时可以使用关键字参数为数组命名,非关键字参数传递的数组会自动起名为arr_0、arr_1……
np.savez()函数输出的是一个扩展名为.npz的压缩文件,它包含多个与保存的数组对应的npy文件(由save()函数保存),文件名对应数组名
读取.npz文件时使用np.load()函数,返回的是一个类似于字典的对象,因此可以通过数组名作为关键字对多个数组进行访问

os.path.dirname(file)返回脚本的路径,但是需要注意一下几点:
1、必须是实际存在的.py文件,如果在命令行执行,则会引发异常NameError: name ‘file’ is not defined
2、在运行的时候如果输入完整的执行的路径,则返回.py文件的全路径如:
Python c:/test/test.py 则返回路径 c:/test ,如果是python test.py 则返回空
3、结合os.path.abspath用,效果会好,如果大家看过一些python架构的代码的话,会发现经常有这样的组合
os.path.dirname(os.path.abspath(file)),os.path.abspath(file)返回的是.py文件的绝对路径
这就是os.path.dirname(file)的用法,其主要总结起来有:
1、不要已命令行的形式来进行os.path.dirname(file)这种形式来使用这个函数
2、结合os.path.abspath()使用

np.diff(a, n=1, axis=-1):n 表示差分的阶数
np.histogram返回每个分段的个数和边界
argsort函数返回的是数组值从小到大的索引值

torch.flip(input, dims) 按照给定维度翻转张量

如果在view之前用了transpose, permute等,需要用contiguous()来返回一个contiguous copy。
有些tensor并不是占用一整块内存,而是由不同的数据块组成,而tensor的view()操作依赖于内存是整块的,这时只需要执行contiguous()这个函数,把tensor变成在内存中连续分布的形式。
判断是否contiguous用torch.Tensor.is_contiguous()函数。

torch.Size()就是一个张量的形状

cffi是连接Python与c的桥梁,可实现在Python中调用c文件。
cuda与python:https://www.cnblogs.com/5long/p/python-cuda.html

glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:” * ”, “?”, “[]”。” * ”匹配0个或多个字符;”?”匹配单个字符;”[]”匹配指定范围内的字符,如:[0-9]匹配数字。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值