In [2]:
%%bash
source activate  root # you need to change here to your env name
pip install kaggle-cli


Collecting kaggle-cli
  Using cached kaggle-cli-0.11.1.tar.gz
Collecting cliff (from kaggle-cli)
  Using cached cliff-2.7.0.tar.gz
Collecting MechanicalSoup (from kaggle-cli)
  Using cached MechanicalSoup-0.7.0-py2.py3-none-any.whl
Requirement already satisfied: lxml in /home/ikeyasu/anaconda3/lib/python3.5/site-packages (from kaggle-cli)
Collecting cssselect (from kaggle-cli)
  Using cached cssselect-1.0.1-py2.py3-none-any.whl
Collecting configparser (from kaggle-cli)
  Downloading configparser-3.5.0.tar.gz
Collecting progressbar2 (from kaggle-cli)
  Using cached progressbar2-3.30.2-py2.py3-none-any.whl
Collecting pbr!=2.1.0,>=2.0.0 (from cliff->kaggle-cli)
  Downloading pbr-3.1.1-py2.py3-none-any.whl (99kB)
Collecting cmd2>=0.6.7 (from cliff->kaggle-cli)
  Downloading cmd2-0.7.3.tar.gz (58kB)
Collecting PrettyTable<0.8,>=0.7.1 (from cliff->kaggle-cli)
  Using cached prettytable-0.7.2.zip
Requirement already satisfied: pyparsing>=2.1.0 in /home/ikeyasu/anaconda3/lib/python3.5/site-packages (from cliff->kaggle-cli)
Requirement already satisfied: six>=1.9.0 in /home/ikeyasu/anaconda3/lib/python3.5/site-packages (from cliff->kaggle-cli)
Collecting stevedore>=1.20.0 (from cliff->kaggle-cli)
  Using cached stevedore-1.23.0-py2.py3-none-any.whl
Requirement already satisfied: PyYAML>=3.10.0 in /home/ikeyasu/anaconda3/lib/python3.5/site-packages (from cliff->kaggle-cli)
Requirement already satisfied: requests>=2.0 in /home/ikeyasu/anaconda3/lib/python3.5/site-packages (from MechanicalSoup->kaggle-cli)
Requirement already satisfied: beautifulsoup4 in /home/ikeyasu/anaconda3/lib/python3.5/site-packages (from MechanicalSoup->kaggle-cli)
Collecting python-utils>=2.1.0 (from progressbar2->kaggle-cli)
  Using cached python_utils-2.1.0-py2.py3-none-any.whl
Building wheels for collected packages: kaggle-cli, cliff, configparser, cmd2, PrettyTable
  Running setup.py bdist_wheel for kaggle-cli: started
  Running setup.py bdist_wheel for kaggle-cli: finished with status 'done'
  Stored in directory: /home/ikeyasu/.cache/pip/wheels/49/4c/0c/f8d4635c9ca30f65272fc3ee31dec80b2c9086283b39d22f61
  Running setup.py bdist_wheel for cliff: started
  Running setup.py bdist_wheel for cliff: finished with status 'done'
  Stored in directory: /home/ikeyasu/.cache/pip/wheels/6e/05/40/fcc1aa7296a05df69c11946c06cf81a64b9fe20979dc746a34
  Running setup.py bdist_wheel for configparser: started
  Running setup.py bdist_wheel for configparser: finished with status 'done'
  Stored in directory: /home/ikeyasu/.cache/pip/wheels/1c/bd/b4/277af3f6c40645661b4cd1c21df26aca0f2e1e9714a1d4cda8
  Running setup.py bdist_wheel for cmd2: started
  Running setup.py bdist_wheel for cmd2: finished with status 'done'
  Stored in directory: /home/ikeyasu/.cache/pip/wheels/8d/22/1d/c608ada4ef39b4b08e175e249084897fad39f79e8df2bb6fb0
  Running setup.py bdist_wheel for PrettyTable: started
  Running setup.py bdist_wheel for PrettyTable: finished with status 'done'
  Stored in directory: /home/ikeyasu/.cache/pip/wheels/b6/90/7b/1c22b89217d0eba6d5f406e562365ebee804f0d4595b2bdbcd
Successfully built kaggle-cli cliff configparser cmd2 PrettyTable
Installing collected packages: pbr, cmd2, PrettyTable, stevedore, cliff, MechanicalSoup, cssselect, configparser, python-utils, progressbar2, kaggle-cli
Successfully installed MechanicalSoup-0.7.0 PrettyTable-0.7.2 cliff-2.7.0 cmd2-0.7.3 configparser-3.5.0 cssselect-1.0.1 kaggle-cli-0.11.1 pbr-3.1.1 progressbar2-3.30.2 python-utils-2.1.0 stevedore-1.23.0

download dataset


In [1]:
%%bash
source activate  root # you need to change here to your env name

rm -rf data
mkdir -p data

pushd data
  kg download
  unzip -q train.zip
  unzip -q test.zip
popd


~/work/til/cnn_dogs_cats/data ~/work/til/cnn_dogs_cats
downloading https://www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition/download/test.zip

downloading https://www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition/download/train.zip

downloading https://www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition/download/sample_submission.csv

~/work/til/cnn_dogs_cats
test.zip 100% |#####################################| Time: 0:00:05  49.6 MiB/s
train.zip 100% |####################################| Time: 0:00:09  55.6 MiB/s
sample_submission.csv 100% |########################| Time: 0:00:00 112.6 KiB/s

Copy files to valid and sample


In [2]:
from glob import glob
import numpy as np
from shutil import move, copyfile

%mkdir -p data/train
%mkdir -p data/valid
%mkdir -p data/sample/train
%mkdir -p data/sample/valid
%pushd data/train
g = glob('*.jpg')
shuf = np.random.permutation(g)
for i in range(200): copyfile(shuf[i], '../sample/train/' + shuf[i])
shuf = np.random.permutation(g)
for i in range(200): copyfile(shuf[i], '../sample/valid/' + shuf[i])

# validation files are moved     
shuf = np.random.permutation(g)
for i in range(1000): move(shuf[i], '../valid/' + shuf[i])
%popd


/home/ikeyasu/work/til/cnn_dogs_cats/data/train
/home/ikeyasu/work/til/cnn_dogs_cats
popd -> ~/work/til/cnn_dogs_cats

Arrangement files


In [3]:
%pushd data/train
%     mkdir cat dog
%     mv cat*.jpg cat
%     mv dog*.jpg dog
%popd
%pushd data/valid
%     mkdir cat dog
%     mv cat*.jpg cat
%     mv dog*.jpg dog
%popd
%pushd data/sample/train
%     mkdir cat dog
%     mv cat*.jpg cat
%     mv dog*.jpg dog
%popd
%pushd data/sample/valid
%     mkdir cat dog
%     mv cat*.jpg cat
%     mv dog*.jpg dog
%popd
%pushd data/test
%     mkdir unknown
%     mv *.jpg unknown
%popd


/home/ikeyasu/work/til/cnn_dogs_cats/data/train
/home/ikeyasu/work/til/cnn_dogs_cats
popd -> ~/work/til/cnn_dogs_cats
/home/ikeyasu/work/til/cnn_dogs_cats/data/valid
/home/ikeyasu/work/til/cnn_dogs_cats
popd -> ~/work/til/cnn_dogs_cats
/home/ikeyasu/work/til/cnn_dogs_cats/data/sample/train
/home/ikeyasu/work/til/cnn_dogs_cats
popd -> ~/work/til/cnn_dogs_cats
/home/ikeyasu/work/til/cnn_dogs_cats/data/sample/valid
/home/ikeyasu/work/til/cnn_dogs_cats
popd -> ~/work/til/cnn_dogs_cats

In [ ]: