|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- # DeepFM Description
-
- This is an example of training DeepFM with Criteo dataset in MindSpore.
-
- [Paper](https://arxiv.org/pdf/1703.04247.pdf) Huifeng Guo, Ruiming Tang, Yunming Ye, Zhenguo Li, Xiuqiang He
-
-
- # Model architecture
-
- The overall network architecture of DeepFM is show below:
-
- [Link](https://arxiv.org/pdf/1703.04247.pdf)
-
-
- # Requirements
- - Install [MindSpore](https://www.mindspore.cn/install/en).
- - Download the criteo dataset for pre-training. Extract and clean text in the dataset with [WikiExtractor](https://github.com/attardi/wikiextractor). Convert the dataset to TFRecord format and move the files to a specified path.
- - For more information, please check the resources below:
- - [MindSpore tutorials](https://www.mindspore.cn/tutorial/zh-CN/master/index.html)
- - [MindSpore API](https://www.mindspore.cn/api/zh-CN/master/index.html)
-
- # Script description
-
- ## Script and sample code
-
- ```python
- ├── deepfm
- ├── README.md
- ├── scripts
- │ ├──run_train.sh
- │ ├──run_eval.sh
- ├── src
- │ ├──config.py
- │ ├──dataset.py
- │ ├──callback.py
- │ ├──deepfm.py
- ├── train.py
- ├── eval.py
- ```
-
- ## Training process
-
- ### Usage
-
- - sh run_train.sh [DEVICE_NUM] [DATASET_PATH] [MINDSPORE_HCCL_CONFIG_PAHT]
- - python train.py --dataset_path [DATASET_PATH]
-
- ### Launch
-
- ```
- # distribute training example
- sh scripts/run_distribute_train.sh 8 /opt/dataset/criteo /opt/mindspore_hccl_file.json
- # standalone training example
- sh scripts/run_standalone_train.sh 0 /opt/dataset/criteo
- or
- python train.py --dataset_path /opt/dataset/criteo > output.log 2>&1 &
- ```
-
- ### Result
-
- Training result will be stored in the example path.
- Checkpoints will be stored at `./checkpoint` by default,
- and training log will be redirected to `./output.log` by default,
- and loss log will be redirected to `./loss.log` by default,
- and eval log will be redirected to `./auc.log` by default.
-
-
- ## Eval process
-
- ### Usage
-
- - sh run_eval.sh [DEVICE_ID] [DATASET_PATH] [CHECKPOINT_PATH]
-
- ### Launch
-
- ```
- # infer example
- sh scripts/run_eval.sh 0 ~/criteo/eval/ ~/train/deepfm-15_41257.ckpt
- ```
-
- > checkpoint can be produced in training process.
-
- ### Result
-
- Inference result will be stored in the example path, you can find result like the followings in `auc.log`.
-
- ```
- 2020-05-27 20:51:35 AUC: 0.80577889065281, eval time: 35.55999s.
- ```
-
- # Model description
-
- ## Performance
-
- ### Training Performance
-
- | Parameters | DeepFM |
- | -------------------------- | ------------------------------------------------------|
- | Model Version | |
- | Resource | Ascend 910, cpu:2.60GHz 96cores, memory:1.5T |
- | uploaded Date | 05/27/2020 |
- | MindSpore Version | 0.2.0 |
- | Dataset | Criteo |
- | Training Parameters | src/config.py |
- | Optimizer | Adam |
- | Loss Function | SoftmaxCrossEntropyWithLogits |
- | outputs | |
- | Loss | 0.4234 |
- | Accuracy | AUC[0.8055] |
- | Total time | 91 min |
- | Params (M) | |
- | Checkpoint for Fine tuning | |
- | Model for inference | |
-
- #### Inference Performance
-
- | Parameters | | |
- | -------------------------- | ----------------------------- | ------------------------- |
- | Model Version | | |
- | Resource | Ascend 910 | Ascend 310 |
- | uploaded Date | 05/27/2020 | 05/27/2020 |
- | MindSpore Version | 0.2.0 | 0.2.0 |
- | Dataset | Criteo | |
- | batch_size | 1000 | |
- | outputs | | |
- | Accuracy | AUC[0.8055] | |
- | Speed | | |
- | Total time | 35.559s | |
- | Model for inference | | |
-
- # ModelZoo Homepage
- [Link](https://gitee.com/mindspore/mindspore/tree/master/mindspore/model_zoo)
|