Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chenyuntc/scene-baseline
PyTorch baseline for AI challenger Scene classification
https://github.com/chenyuntc/scene-baseline
image-classification pytorch
Last synced: about 2 months ago
JSON representation
PyTorch baseline for AI challenger Scene classification
- Host: GitHub
- URL: https://github.com/chenyuntc/scene-baseline
- Owner: chenyuntc
- Created: 2017-10-18T14:11:11.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-03-27T11:19:45.000Z (over 6 years ago)
- Last Synced: 2024-04-27T23:54:58.586Z (5 months ago)
- Topics: image-classification, pytorch
- Language: Python
- Size: 2.25 MB
- Stars: 95
- Watchers: 4
- Forks: 32
- Open Issues: 2
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
# PyTorch Baseline for AI challenger scene
AI Challenger [场景分类竞赛](https://challenger.ai/competition/scene/)的示例代码## 使用
### 1.环境配置
安装:
- [PyTorch](http://pytorch.org/),根据官网说明下载指定的版本即可。
- 第三方依赖: `pip install -r requirements.txt`### 2.数据预处理:
这一步主要是根据json文件进行简单的处理,生成二进制scene.pth,可以跳过这一步,直接下载随程序附带的scene.pth
如果你想自己生成scene.pth,修改scripts/data_process.py 中的文件路径,然后运行
```bash
python scripts/data_process.py
```### 3.启动visdom
可视化工具[visdom](https://github.com/facebookresearch/visdom)
```bash
nohup python2 -m visdom.server&
```### 4.训练
训练之前还需要新建`checkpoints`文件夹用来保存模型`mkdir checkpoints`。
注意修改utils.py 中文件路径```bash
python main.py train --model='resnet34'
```
在 Titan Xp下,大概90分钟可以在验证集上得到大约0.938的准确率```bash
python main.py train --model='resnet365'
```使用place365的预训练模型resnet50, 可以在验证集达到**0.957**的top3分数,
打开浏览器 输入http://ip:8097 可以看到训练过程。visdom 中要用到两个js文件`plotly.min.js`和`react-grid-layout.min.js`,这两个js文件被防火墙所拦截~ 所以你可能需要自备梯子才能用visdom。
另外一个解决方法是:
`locate locate visdom/static/index.html`,修改index.html中两行js的地址### 5.提交
```bash
python main.py submit --model='resnet34' --load-path='res34_1018_2204_0.938002232143'```
会在当前目录生成`result.json`文件,直接提交即可## 关于CPU运行
把所有`.cuda()`代码去掉,就能使得程序在CPU上运行## 各个文件说明
欢迎参考之前在[知乎专栏](https://zhuanlan.zhihu.com/p/29024978)写过的一篇关于PyTorch的文件组织安排的文章了解每个文件的作用`models/`: 存放各个模型定义,所有的模型继承自`basic_module.py`中的`BasicModule`.
`models/resnet.py`: 对torchvision中的resnet18, resnet34, resnet50, resnet101 和resnet152 进行了简单的封装。
`dataset.py`: 数据加载相关
`main.py`: 主程序,包含训练和测试
`utils.py`: 可视化工具visdom的封装,计算top3准确率函数,可配置变量(可通过命令行参数修改,也可以通过修改文件配置)等。