BinaryNet 项目使用教程
1. 项目的目录结构及介绍
BinaryNet 项目的目录结构如下:
BinaryNet/
├── Train-time/
│ ├── Main_BinaryNet_Cifar10.lua
│ ├── Main_BinaryNet_MNIST.lua
│ ├── Main_BinaryNet_SVHN.lua
│ ├── ...
├── Run-time/
│ ├── ...
├── LICENSE.txt
├── README.md
目录结构介绍
- Train-time: 包含用于训练的脚本文件,如
Main_BinaryNet_Cifar10.lua
,Main_BinaryNet_MNIST.lua
,Main_BinaryNet_SVHN.lua
等。 - Run-time: 包含用于运行时的脚本文件。
- LICENSE.txt: 项目的许可证文件。
- README.md: 项目的说明文档。
2. 项目的启动文件介绍
Main_BinaryNet_Cifar10.lua
这是用于训练 CIFAR-10 数据集的启动文件。主要功能包括:
- 加载模型文件
- 设置学习率、批次大小等参数
- 使用二值化神经网络进行训练
主要参数
- modelsFolder: 模型文件夹路径,默认值为
/Models/
。 - networkModel: 模型文件,必须返回有效的网络。
- LR: 学习率,默认值为
0.1
。 - batchSize: 批次大小,默认值为
128
。 - optimization: 优化方法,默认值为
adam
。 - type: 运行类型,默认值为
cuda
。
3. 项目的配置文件介绍
配置文件
BinaryNet 项目的配置主要通过命令行参数进行设置,具体参数如下:
- LR: 学习率,默认值为
0.1
。 - LRDecay: 学习率衰减,默认值为
0
。 - weightDecay: L2 惩罚项,默认值为
1e-4
。 - momentum: 动量,默认值为
0.9
。 - batchSize: 批次大小,默认值为
128
。 - stcNeurons: 是否使用随机二值化神经元,默认值为
true
。 - stcWeights: 是否使用随机二值化权重,默认值为
false
。 - optimization: 优化方法,默认值为
adam
。 - SBN: 是否使用基于移位的批量归一化,默认值为
true
。 - runningVal: 是否使用运行时的均值和标准差,默认值为
true
。 - epoch: 训练的轮数,默认值为
-1
(无限制)。 - threads: 线程数,默认值为
8
。 - type: 运行类型,默认值为
cuda
。 - devid: 设备 ID,默认值为
1
。 - load: 加载现有模型的路径,默认值为
none
。
通过这些参数,用户可以灵活地配置训练过程。