PyGlove:一个用于操作 Python 对象的库。
项目描述
PyGlove:操作 Python 程序
PyGlove 是一个用于 Python 对象操作的通用库。它将符号面向对象编程引入 Python,允许直接操作对象,使元程序更容易编写。它已被用于处理复杂的机器学习场景,例如 AutoML,以及以额外的灵活性促进日常编程任务。
PyGlove 是轻量级的,除了 Python 解释器之外没有依赖项。它提供:
- Python 的可变符号对象模型;
- 丰富的 Python 对象操作操作集;
- 自动搜索更好的 Python 程序的解决方案,包括:
- 一个易于使用的 API,用于将搜索放入任意预先存在的 Python 程序;
- 一组用于定义搜索空间的强大搜索原语;
- 一个可供使用的搜索算法库,以及一个用于开发新搜索算法的框架;
- 与任何分布式基础设施进行交互以进行此类搜索的 API。
它常用于:
- 自动化机器学习(AutoML);
- 进化计算;
- 大型团队的机器学习(发展和共享 ML 代码、重用 ML 技术等);
- Python 中的日常编程任务(高级绑定功能、可变性等)。
PyGlove 已在 NeurIPS 2020 上发布。它在Alphabet 内被广泛使用,包括 Google Research、Google Cloud、Youtube 和 Waymo。
PyGlove 由Google Brain Team的 Daiyi Peng 及其同事开发。
安装
pip install pyglove
你好 PyGlove
import pyglove as pg
@pg.symbolize
class Hello:
def __init__(self, subject):
self._greeting = f'Hello, {subject}!'
def greet(self):
print(self._greeting)
hello = Hello('World')
hello.greet()
你好世界!
hello.rebind(subject='PyGlove')
hello.greet()
你好,派格洛夫!
hello.rebind(subject=pg.oneof(['World', 'PyGlove']))
for h in pg.iter(hello):
h.greet()
你好世界!
你好,派格洛夫!
例子
-
自动机器学习
-
进化
-
机器学习
-
高级 Python 编程
引用 PyGlove
@inproceedings{peng2020pyglove,
title={PyGlove: Symbolic programming for automated machine learning},
author={Peng, Daiyi and Dong, Xuanyi and Real, Esteban and Tan, Mingxing and Lu, Yifeng and Bender, Gabriel and Liu, Hanxiao and Kraft, Adam and Liang, Chen and Le, Quoc},
booktitle={Advances in Neural Information Processing Systems (NeurIPS)},
volume={33},
pages={96--108},
year={2020}
}
免责声明:这不是官方支持的 Google 产品。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
pyglove-0.1.0.tar.gz
(315.2 kB
查看哈希)
内置分布
pyglove-0.1.0-py3-none-any.whl
(343.0 kB
查看哈希)