Loading

『笔记』Python

『笔记』Python

自己总结的一些基础

起因是自己在主函数里先是写了装饰器,未果后写了类还是函数,运行后貌似都是报错AttributeError: Can't pickle local object 'main_worker..LoaderWithEx,老老实实定义到主函数外就正常了。经过搜索之后感受到了这种定义了临时的有点虚的方法时会在多线程出现问题的感觉。其它人也遇到使用装饰器时有关这个的讨论:

多进程获取返回值是需要序列化的,但是装饰器是无法序列化的,所以报错。查阅资料找到解决办法为:functools.wraps,它可以解除这种束缚,从而变的可序列化。

最近在机器学习保存类数据时也用到了这个方式,因为类中传递了自定义的函数,所以抛出异常:AttributeError: Can't pickle local object

装饰器:

partial()

map()

收集自己见过的技巧

在类内使用这样的操作把刚刚建成临时的conv_layers储存成一个以head这个字符串命名的类内变量

conv_layers = nn.Sequential(*conv_layers)
self.__setattr__(head, conv_layers)

在ArgumentParser设置arguments的时候使用nargs="+"为一个arg设置不定数量多个值的传入:

posted @ 2022-07-05 23:01  traviscui  阅读(16)  评论(0)    收藏  举报