XNOR-Net: 使用二进制卷积神经网络的ImageNet分类
1. 项目介绍
XNOR-Net是一个使用二进制卷积神经网络的ImageNet分类项目。该项目通过将网络权重和激活二值化,实现了在保持较高准确率的同时显著减少计算资源和存储需求。XNOR-Net在ECCV 2016上发表,作者是Mohammad Rastegari、Vicente Ordonez、Joseph Redmon和Ali Farhadi。
2. 项目快速启动
环境准备
- 安装Lua以及Torch7框架。
- 确保你有ImageNet数据集。
克隆项目
git clone https://github.com/allenai/XNOR-Net.git
cd XNOR-Net
训练二进制权重网络
th main.lua -data [path to ImageNet dataset] -nGPU 1 -batchSize 128 -netType alexnet -binaryWeight -dropout 0.1
训练XNOR网络
th main.lua -data [path to ImageNet dataset] -nGPU 4 -batchSize 800 -netType alexnetxnor -binaryWeight -optimType adam -epochSize 1500
使用预训练模型
th main.lua -data [path to ImageNet dataset] -retrain [path to the trained model file] -testOnly
3. 应用案例和最佳实践
图像预处理
使用以下预处理步骤来处理图像:
find . -name "*.JPEG" | xargs -I {} convert {} -resize "256^>"
模型准确率
使用上述预处理后,模型的Top-1准确率为:
- alexnet_BWN: 56.8%
- alexnet_XNOR: 43.3%
4. 典型生态项目
XNOR-Net作为二值化神经网络的一个示例,可以启发更多对计算资源敏感的应用场景,如移动设备上的实时图像识别。此外,该项目也为其他深度学习框架如TensorFlow和PyTorch实现类似二值化技术提供了参考。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



