未提供项目说明
pyklopp的Python项目详细描述
皮克洛普
厌倦了将模型原型的所有超参数配置记录到磁盘吗?在
Pyklopp是一个初始化、训练和评估Pythorch模型的工具(目前用于有监督的问题)。 它保存所有相关的超参数、计时和模型配置。 您的原型化可以简化为定义模型、数据集和所需的参数。在
Important note:我们正在经历一个架构上的变化,从编写配置json文件到编写给定jsonschema的元数据文件。 因此,为了保持实验的可重复性并针对当前的pyklopp设计进行编程,请在您的实验中引用精确的pyklopp版本。 E、 为了你的环境.yml:
dependencies:-pip:-pyklopp==0.3.0
安装
您可以使用以下命令从PyPi安装一个版本:pip install pyklopp
。在
要安装最新的开发版本,您可以克隆存储库并调用poetry build
(安装poetry)。
然后您可以使用构建的包,并通过pip install dist/xxx.whl
在当前环境中使用pip安装它。在
定义模型和数据集
二手进口:
^{pr2}$在纯python文件中指定模型,例如:
# my_model.py# Your model can be any pytorch module# Make sure to not define it locally (e.g. within the get_model()-function)classLeNet(nn.Module):def__init__(self,output_size):super(LeNet,self).__init__()self.conv1=nn.Conv2d(3,6,5)self.conv2=nn.Conv2d(6,16,5)self.fc1=nn.Linear(16*5*5,120)self.fc2=nn.Linear(120,84)self.fc3=nn.Linear(84,output_size)defforward(self,x):out=F.relu(self.conv1(x))out=F.max_pool2d(out,2)out=F.relu(self.conv2(out))out=F.max_pool2d(out,2)out=out.view(out.size(0),-1)out=F.relu(self.fc1(out))out=F.relu(self.fc2(out))out=self.fc3(out)returnout# This is your model-instantiation function# It receives an assembled configuration keyword argument list and should return an instance of your modeldefget_model(**kwargs):output_size=int(kwargs['output_size'])returnLeNet(output_size)
调用pyklopp初始化它:pyklopp init my_model.get_model --save='test/model.pth' --config='{"output_size": 10}'
在cifar10上训练它:
pyklopp train test/model.pth cifar10.py --save='test/trained.pth' --config='{"batch_size": 100}'
pyklopp train test/model.pth torchvision.datasets.cifar.CIFAR10 --save 'test/trained.pth' --config='{"dataset_root": "/media/data/set/cifar10"}'
示例
# Initializing & Saving: mymodel.py pyklopp init foo --save='mymodel1/model.pth' pyklopp init foo --config='{"python_seed_initial": 100}' --save='mymodel2/model.pth'# Training pyklopp train path/to/mymodel.pth mnist pyklopp train path/to/mymodel.pth mnist --config='{"batch_size": 100, "learning_rate": 0.01}'
# foo.py - Your model initialization functiondefinit(**kwargs):input_size=kwargs['input_size']output_size=kwargs['output_size']returnpypaddle.sparse.MaskedDeepFFN(input_size,output_size,[100,100])
# mnist.py - Your dataset loading functionsdeftrain_loader(**kwargs):batch_size=kwargs['batch_size']mnist_train_loader,mnist_test_loader,_,selected_root=pypaddle.util.get_mnist_loaders(batch_size,'/media/data/set/mnist')returnmnist_train_loaderdeftest_loader(**kwargs):batch_size=kwargs['batch_size']mnist_train_loader,mnist_test_loader,_,selected_root=pypaddle.util.get_mnist_loaders(batch_size,'/media/data/set/mnist')returnmnist_test_loader
发展
- 在dist/中创建轮子文件:
poetry build
- 使用pip在当前环境中安装wheel:
pip install path/to/pyklopp/dist/pyklopp-0.1.0-py3-none-any.whl
在本地运行CI映像
安装最新的gitlab runner(12.3或更高版本):
# For Debian/Ubuntu/Mint curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash # For RHEL/CentOS/Fedora curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash apt-get update apt-get install gitlab-runner $ gitlab-runner -v Version: 12.3.0
执行作业tests:gitlab-runner exec docker test-python3.6
在本地运行github操作
{emm}安装。
运行act
在本地运行预提交检查
poetry run pre-commit run --all-files
- 项目
标签: