{"cells":[{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nfrom subprocess import check_output\nprint(check_output([\"ls\",\"-lh\",\"../input\"]).decode(\"utf8\"))\n\n# Any results you write to the current directory are saved as output."},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"import os\nimport multiprocessing\n\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.cross_validation import cross_val_score\n\nfrom scipy.misc import imread, imresize"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"#def get_train():\n\ndef getimage(x):\n    return imresize(imread(x, 'L'), (100, 100)).flatten()\n   \nres = getimage('../input/train/c0/img_100026.jpg')"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"imresize(imread('../input/train/c0/img_100026.jpg', 'L'), (100, 100))[0]"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"#imread('../input/train/c0/img_100026.jpg', 'L')[0:3]\npaths = os.listdir()"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"one_up = os.path.dirname(os.getcwd())\nlabels = [i for i in os.listdir(os.path.join(one_up, 'input', 'train')) if 'c' in i]\nlabels.sort()"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"print(labels)\nprint(*labels)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"data = []\nfor lab in labels:\n    paths = os.listdir(os.path.join(one_up, 'input', 'train', lab))\n    X = [(os.path.join(one_up, 'input', 'train', lab, i), lab) for i in paths]\n    data.extend(X)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"import random \nrandom.shuffle(data)\ndf = pd.DataFrame({'paths': [i[0] for i in data],\n                  'target': [i[1] for i in data]})\n"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"#for cl in labels:\n#    df[cl] = df.target == cl\n#df.drop('target', 1, inplace=True)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"train = df.sample(100)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"def apply_by_multiprocessing(df, func):\n    workers = multiprocessing.cpu_count()\n    pool = multiprocessing.Pool(processes = workers)\n    result = pool.map(_apply_df, [(d, func) for d in np.array_split(df, workers)])\n    pool.close()\n    return pd.concat(list(result))\n\ndef _apply_df(args):\n    df, func = args\n    return df.apply(func)\n\ntrain['images'] = apply_by_multiprocessing(train.paths, getimage)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"len(train.images[8852])"}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"}},"nbformat":4,"nbformat_minor":0}