{"nbformat_minor": 1, "metadata": {"_change_revision": 0, "_is_fork": false, "kernelspec": {"language": "python", "display_name": "Python 2", "name": "python2"}, "language_info": {"nbconvert_exporter": "python", "mimetype": "text/x-python", "name": "python", "codemirror_mode": {"name": "ipython", "version": 2}, "file_extension": ".py", "pygments_lexer": "ipython2", "version": "2.7.10"}}, "cells": [{"source": ["import os, random, datetime\n", "import numpy as np\n", "import tensorflow as tf\n", "from matplotlib import pyplot as plt\n", "%matplotlib inline\n", "import pickle"], "metadata": {"_uuid": "bb851d4059a699f6420d3a6e3d403dbdd7f6a710", "_cell_guid": "2f1dd20b-8d57-3d3d-0b2b-71af49035049", "collapsed": true}, "outputs": [], "execution_count": null, "cell_type": "code"}, {"source": ["TRAIN_DIR = '../input/train/'\n", "TEST_DIR = '../input/test/'\n", "DEV_RATIO = 0.1\n", "IMAGE_HEIGHT = IMAGE_WIDTH = 512\n", "CHANNELS = 3\n", "n_Y = 2"], "metadata": {"_uuid": "c7ac1c93f2c16910360c1544345c8cec603fb4d0", "_cell_guid": "23fc1d42-4d76-f620-3acb-560284707421", "collapsed": true}, "outputs": [], "execution_count": null, "cell_type": "code"}, {"source": ["## tool functions\n", "def ex_time(func):\n", "    start_time = datetime.datetime.now()\n", "    \n", "    def wrapper(*args, **kwargs):\n", "        print(\"start time: {}\".format(start_time))\n", "        res = func(*args, **kwargs)\n", "        \n", "        end_time = datetime.datetime.now()\n", "        ex_time = end_time - start_time\n", "        print(\"end time: {}\".format(end_time))\n", "        print(\"excute time: {} seconds\".format(ex_time.seconds))\n", "\n", "        return res\n", "       \n", "    return wrapper"], "metadata": {"collapsed": true}, "outputs": [], "execution_count": null, "cell_type": "code"}, {"source": ["filenames = os.listdir(TRAIN_DIR)\n", "random.shuffle(filenames)"], "metadata": {"_uuid": "f91d5e0d034957ffc61c161699a764d4b2b48570", "_cell_guid": "339d456a-be0f-2a89-a1d3-7067399cbc64", "collapsed": true}, "outputs": [], "execution_count": null, "cell_type": "code"}, {"source": ["@ex_time\n", "def load_images(filenames, dirname=TRAIN_DIR):\n", "    file_name = tf.placeholder(dtype=tf.string)\n", "    file = tf.read_file(file_name)\n", "    img = tf.image.decode_jpeg(file)\n", "    resized_img = tf.image.resize_image_with_crop_or_pad(img, IMAGE_HEIGHT, IMAGE_WIDTH)\n", "    \n", "    n_x = IMAGE_HEIGHT*IMAGE_WIDTH*CHANNELS\n", "    m = len(filenames)\n", "    \n", "    images = np.zeros((m, n_x))\n", "    labels = np.zeros((m, n_Y))\n", "    with tf.Session() as sess:\n", "        for i in range(m):\n", "            filename = dirname + filenames[i]\n", "            img = sess.run(resized_img, feed_dict={file_name: filename}).reshape(n_x, )   \n", "            images[i] = img\n", "            \n", "            if \"dog\" in filename:\n", "                labels[i, 1] = 1\n", "            else:\n", "                labels[i, 0] = 1\n", "    images /= 255.0 \n", "    return images.T, labels.T\n", "\n"], "metadata": {"collapsed": true}, "outputs": [], "execution_count": null, "cell_type": "code"}, {"source": ["images, labels = load_images(filenames[:1000])"], "metadata": {}, "outputs": [], "execution_count": null, "cell_type": "code"}, {"source": ["def split_data(images, labels, dev_ratio=DEV_RATIO):\n", "    dev_count = int(labels.shape[1] * DEV_RATIO)\n", "\n", "    dev_images = images[:, :dev_count]\n", "    train_images = images[:, dev_count:]\n", "    dev_labels = labels[:, :dev_count]\n", "    train_labels = labels[:, dev_count:]\n", "    \n", "    print(\"train images shape: {}, train labels shape:{}, \\\n", "    dev images shape: {}, dev labels shape: {}\".format(train_images.shape, train_labels.shape, dev_images.shape, dev_labels.shape))\n", "    \n", "    return train_images, train_labels, dev_images, dev_labels"], "metadata": {"collapsed": true}, "outputs": [], "execution_count": null, "cell_type": "code"}, {"source": ["train_images, train_labels, dev_images, dev_labels = split_data(images, labels)"], "metadata": {}, "outputs": [], "execution_count": null, "cell_type": "code"}, {"source": ["print('Mean aspect ratio: ',np.mean(labels))\n", "plt.plot(labels)\n", "plt.show()"], "metadata": {"_uuid": "acce3ac95900b003cd11c2e1e93ba1a6771fa942", "_cell_guid": "72390036-f172-9423-87bf-f68f46e595ea"}, "outputs": [], "execution_count": null, "cell_type": "code"}, {"source": [], "metadata": {"collapsed": true}, "outputs": [], "execution_count": null, "cell_type": "code"}], "nbformat": 4}