{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook is a compliment to the *Hyperparameter Optimization on Keras* article. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Overview\n", "\n", "There are four steps to setting up an experiment with Talos:\n", "\n", "1) Imports and data\n", "\n", "2) Creating the Keras model\n", "\n", "3) Defining the Parameter Space Boundaries \n", "\n", "4) Running the Experiment" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. The Required Inputs and Data" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import talos as ta\n", "import wrangle as wr\n", "from talos.metrics.keras_metrics import fmeasure_acc\n", "from talos import live\n", "\n", "import pandas as pd\n", "\n", "from keras.models import Sequential\n", "from keras.layers import Dropout, Dense\n", "\n", "# Keras items\n", "from keras.optimizers import Adam, Nadam\n", "from keras.activations import relu, elu\n", "from keras.losses import binary_crossentropy\n", "\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# then we load the dataset\n", "x, y = ta.datasets.breast_cancer()\n", "\n", "# and normalize every feature to mean 0, std 1\n", "x = wr.mean_zero(pd.DataFrame(x)).values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Creating the Keras Model" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "# first we have to make sure to input data and params into the function\n", "def breast_cancer_model(x_train, y_train, x_val, y_val, params):\n", "\n", " model = Sequential()\n", " model.add(Dense(params['first_neuron'], input_dim=x_train.shape[1],\n", " activation=params['activation'],\n", " kernel_initializer=params['kernel_initializer']))\n", " \n", " model.add(Dropout(params['dropout']))\n", "\n", " model.add(Dense(1, activation=params['last_activation'],\n", " kernel_initializer=params['kernel_initializer']))\n", " \n", " model.compile(loss=params['losses'],\n", " optimizer=params['optimizer'](),\n", " metrics=['acc', fmeasure_acc])\n", " \n", " history = model.fit(x_train, y_train, \n", " validation_data=[x_val, y_val],\n", " batch_size=params['batch_size'],\n", " callbacks=[live()],\n", " epochs=params['epochs'],\n", " verbose=0)\n", "\n", " return history, model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Defining the Parameter Space Boundary" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# then we can go ahead and set the parameter space\n", "p = {'first_neuron':[9,10,11],\n", " 'hidden_layers':[0, 1, 2],\n", " 'batch_size': [30],\n", " 'epochs': [100],\n", " 'dropout': [0],\n", " 'kernel_initializer': ['uniform','normal'],\n", " 'optimizer': [Nadam, Adam],\n", " 'losses': [binary_crossentropy],\n", " 'activation':[relu, elu],\n", " 'last_activation': ['sigmoid']}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. Starting the Experiment" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# and run the experiment\n", "t = ta.Scan(x=x,\n", " y=y,\n", " model=breast_cancer_model,\n", " params=p,\n", " dataset_name='breast_cancer',\n", " experiment_no='1')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }