在编写一些程序的时候,灵活的使用@property能使程序更加的pythonic。@property的作用是能够将类中的一个函数变成此类属性来使用。
举一个简单的例子,我们要编写一个圆的类,可以这样写:
1234class Circle(): def __init__(se
...
pytorch中forward方法是如何调用的
前言TensorFlow 的API确实有点乱,1版本和2版本函数变化比较大,最不舒服的一点是,多个不同函数可以实现同一个功能。但是基于TF的keras 用起来倒挺方便。
今天试着用了用pytorch,发现定义网络时连接网络的forward函数在代码中都不需要被调用,很是困惑。搜了一下才知道,自己编写
...
Python中typing模块与类型注解的使用方法
今天在研究pytorch的forward方法是怎么调用的时候看到一行以前没见过的语法:
1 | # torch.nn 里 module.py 中第746行 |
以前没见过冒号这样的,也不知道Callable是什么。
去搜了一下发现,冒号是类型注解,Callable表示一种可调用的类型。
这行代码其实是将_call_impl
方法赋值给了__call__
方法,相当于__call__ = _call_impl
,中间的(: Callable[..., Any]
)表示等号右边的需要是一个可调用的类型。
将keras/TensorFlow的变量格式从NCHW转换为NHWC
当keras在CPU上进行图片数据的训练时,只支持NHWC格式的图片输入数据,不支持NCHW的格式。输入NCHW格式的数据会报错:
1tensorflow.python.framework.errors_impl.InvalidArgumentError: Conv2DCustomBackprop
...
利用valine给博客添加留言功能
想给博客添加一个留言功能,搜了一下几种留言系统,发现 valine 的风格和留言方式是最喜欢的。
因为利用 hexo 在 gitpage 上搭建的博客是静态的,所以留言系统基本都是将留言数据放在他们各自第三方的服务器上,这样也就不用自己搭建留言后端。
Python--collections容器数据类型
collections模块基本介绍
我们都知道,Python拥有一些内置的数据类型,比如str、list、tuple、dict等,collections模块是在这些内置数据类型的基础上,提供了几个额外的数据类型,以提供Python标准内建容器dict、list、set、tuple的替代选择。主要有:
- namedtuple:生成可以使用名字来访问元素内容的tuple子类
- deque: 双端队列,可以快速的从另外一侧追加和推出对象
- Counter: 计数器,主要用来计数
- OrderedDict: 有序字典
- defaultdict: 带有默认值的字典
这些数据类型的作用主要有增加代码的可读性、方便用户操作数据、提高某些场景下数据的访问效率。
python--argparse命令行解析工具的用法
agrparse是python官方库汇中的一个命令行解析工具,主要作用是接收命令行中的参数,同时还有给出代码的usage功能。
就像在命令行终端中输入:
>> python main.py --help
它会给出代码参数的说明。
>> python main.py --num 10 --name Tom
这是给代码传入num和name参数。