一个常用的工具代码包集合
Project description
kevin_toolbox
一个通用的工具代码包集合
环境要求
numpy>=1.19
pytorch>=1.2
安装方法:
pip install kevin-toolbox --no-dependencies
- v 1.2.7 (2023-09-18)【bug fix】
- nested_dict_list
- 【bug fix】fix bug in set_value(),修复了无法强制设置以@开头的name的问题
- 【bug fix】fix bug in serializer.read(),修复了在不进行解压时仍然构造temp_dir的问题
- 【bug fix】fix bug in copy_(),修复了无法复制带有 grad_func 的tensor的问题。
- 添加了测试用例。
- 注意:本修复只解决节点是tensor的情况,对于节点是含有不能deepcopy的tensor的变量,比如由带有 grad_func 的tensor组成的tuple等的结构,copy_()函数仍然会报错。考虑到这种情况非常复杂,因此不作解决,只能尽量避免,或者出错时专门排查。
- 改造模块加载方式,支持通过x.y间接加载子模块,比如 nested_dict_list.serializer 等
- 【new feature】modify copy_(),增加了 b_keep_internal_references 参数用于控制是否保留内部的引用关系。
- 当使用 b_keep_internal_references=True 时,将保留 ndl 中结构与结构之间或者节点与节点之间的引用关系。默认为 True(当b_deepcopy=True时与 copy.deepcopy 的行为一致)。
- 什么是引用关系?
- 比如我们将某个字典 A 多次加入到某个 list 中,那么这个 list 中的这些字典实际上都指向内存上同一个字典,因此对其中某个字典的修改将影响到其他 list 中的其他元素。这种内存上指向同一个位置的关系就是引用。
- 与 b_deepcopy 的配合:
- 当 b_deepcopy=False 进行浅拷贝时,参数 b_keep_internal_references 仅作用于结构,反之则同时作用于结构和节点。
- 添加了测试用例。
- nested_dict_list.serializer
- modify write(),只对输入进行浅拷贝,减少对内存的消耗。
- nested_dict_list
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
kevin-toolbox-dev-1.2.7.tar.gz
(137.3 kB
view hashes)
Built Distribution
Close
Hashes for kevin_toolbox_dev-1.2.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d4bb5e2bd8a6ec654400509048c957ac96c132181d3ab14a15fcdc880d45632 |
|
MD5 | 5d812bb0ef78a02a4ea0d4652c281aa8 |
|
BLAKE2b-256 | 43b8fea9f673623bddeff10491e84b099bc7b9b6b63d956d8ed9b0b4382d3126 |