juncas / udacity_p7_cat_vs_dog

Udacity-MLND-P7-cat-vs-dog

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Udacity 机器学习进阶P7:猫狗大战

cat.vs.dog

简介

这是Udacity 机器学习(进阶)毕业项目猫狗大战的全部实现过程。供后续同学参考。

最优模型才随机测试样本上的预测

本文项目采用融合+迁移+调参的方法实现,最终的模型Mergenet3获得的得分为0.03546。这个分数可以排到当时Kaggle天梯的前0.5%,第六名。实现参考了培神的实现。如果参考了本实现或者培神的方法,请记得引用。

想要了解每个文件的内容,请先阅读report.pdf文件,该文件为毕业项目的详细报告。

猫狗大战的训练数据和测试数据可以在这里下载。

文件说明

使用到的库

  • os
  • shutil
  • numpy
  • random
  • tqdm
  • time
  • PIL
  • h5py
  • pandas
  • keras
  • sklearn

训练所用机器

  • CPU:i7-8700k
  • 内存: 16G DDR4 2400
  • GPU:
    • device 0: GTX1070Ti-8G
    • device 1: Tesla K40c
  • 其他配置不重要

操作系统

Ubuntu 16.04 64位

运行时间

特征提取时间(K40c)

  • ResNet50: 1100s
  • Xception: 1350s
  • DenseNet169: 2200s
  • Inception_V3: 1500s
  • NASNetMobile: 1260s

训练时间

  • DenseNet169(on GTX1070Ti): 600s/Epoch*20 Epochs
  • Inception_V3(on K40c): 1s/Epoch*20 Epochs
  • Mergenet1(on K40c): 1s/Epoch*20 Epochs
  • Mergenet2(on K40c): 1s/Epoch*20 Epochs
  • Mergenet3(on K40c): 1s/Epoch*20 Epochs
  • ResNet50:
    • 119s/Epoch*10 (Freeze)
    • 124s/Epoch*5 (Fine-tuning 1)
    • 132s/Epoch*5 (Fine-tuning 2)
    • 695s/Epoch*10 (Fine-tuning 3)
  • Xception(on GTX1070Ti):
    • 119s/Epoch*10 (Freeze)
    • 124s/Epoch*5 (Fine-tuning 1)
    • 132s/Epoch*5 (Fine-tuning 2)
    • 695s/Epoch*10 (Fine-tuning 3)

About

Udacity-MLND-P7-cat-vs-dog


Languages

Language:Jupyter Notebook 98.8%Language:Python 1.2%