{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Functional prediction of hypothetical TFs in bacteria using supervised machine learning: *Pseudomonas aeruginosa*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Created by Emanuel Flores-Bautista 2018. All code contained in this notebook is licensed under the [Creative Commons License 4.0](https://creativecommons.org/licenses/by/4.0/)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is the workflow we will use:\n", " \n", "1. Load in the TF-TF network from RegulonDB as a `DataFrame`, and NetworkX.\n", "2. Apply clustering louvain algorithm to find the modules (caveat: each run the cluster labels change, but the clusters have the same content, i.e. we have to make our predictions in one single run). Add a new attribute in the network corresponding to cluster labels. Validate their functional relationship (e.g. SoxR and SoxS, GadEWX fall into the same modules, respectively)\n", "4. Data preprocessing: check for missing data, normalize, and reduce dimensionality using PCA. \n", "6. Multi-label classification: Assign the cluster labels to the expression dataframe. \n", "5. Train a multi-label neural network with the known TF exp data assigning the cluster labels (try first with a SVM). Based on this ref: https://towardsdatascience.com/multi-class-text-classification-with-scikit-learn-12f1e60e0a9f \n", "6. Validate the performance. We can try 4 different algorithms and then predict with the best one. \n", "7. Predict the labels for the TFs with unknown physiological function.\n", "8. Analyze results. \n", " " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'/Users/manoloflores/jupyter-notebooks'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pwd" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/Users/manoloflores/Desktop/uni/bioinfo/data/paeru\n" ] } ], "source": [ "cd ../Desktop/uni/bioinfo/data/paeru/" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "##Setting the Pyplot Figures inside the notebook\n", "%matplotlib inline\n", "\n", "#Get svg graphics from the Notebook\n", "%config InlineBackend.figure_format = 'svg'\n", "\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import networkx as nx\n", "import random \n", "import matplotlib as mpl\n", "\n", "sns.set_style('white')\n", "sns.set_context(\"talk\", font_scale=1, rc={\"lines.linewidth\": 2.0, 'lines.markersize': 5})\n", "sns.set_style(\"ticks\")\n", "sns.set_style({\"xtick.direction\": \"in\",\"ytick.direction\": \"in\"})\n", "#mpl.rc('axes', prop_cycle=(cycler('color', ['b','g','y','m','c']) ))\n", "mpl.rc('text', usetex=False)\n", "\n", "tw = 1.5\n", "sns.set_style({\"xtick.major.size\": 6, \"ytick.major.size\": 6,\n", " \"xtick.minor.size\": 4, \"ytick.minor.size\": 4,\n", " 'axes.labelsize': 28,\n", " 'xtick.major.width': tw, 'xtick.minor.width': tw,\n", " 'ytick.major.width': tw, 'ytick.minor.width': tw})\n", "\n", "mpl.rc('xtick', labelsize=28) \n", "mpl.rc('ytick', labelsize=28)\n", "mpl.rc('axes', linewidth=1.75)\n", "plt.gcf().subplots_adjust(bottom=0.15)\n", "sns.set_style({'axes.labelsize': 24})" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "paeru-trn.csv\r\n" ] } ], "source": [ "ls *.csv" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "df_trn = pd.read_csv('paeru-trn.csv', comment= '#')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
RegulatorOperonTarget genemode of regulationExperimental EvidencePubMed ReferenceP. aeruginosa Strain
0agmRNaNpqqH+lac-promoter, B-galactosidase assay and RT-PCR19902179ATCC
1algRNaNhcnA-mutant and PCR19270096PAO1
2anrcoxcoxA-Microarray and Gene Chip data analysis19930444PAO1
3anrcoxcoxB-Microarray and Gene Chip data analysis19930444PAO1
4anrcoxcolII-Microarray and Gene Chip data analysis19930444PAO1
\n", "
" ], "text/plain": [ " Regulator Operon Target gene mode of regulation \\\n", "0 agmR NaN pqqH + \n", "1 algR NaN hcnA - \n", "2 anr cox coxA - \n", "3 anr cox coxB - \n", "4 anr cox colII - \n", "\n", " Experimental Evidence PubMed Reference \\\n", "0 lac-promoter, B-galactosidase assay and RT-PCR 19902179 \n", "1 mutant and PCR 19270096 \n", "2 Microarray and Gene Chip data analysis 19930444 \n", "3 Microarray and Gene Chip data analysis 19930444 \n", "4 Microarray and Gene Chip data analysis 19930444 \n", "\n", " P. aeruginosa Strain \n", "0 ATCC \n", "1 PAO1 \n", "2 PAO1 \n", "3 PAO1 \n", "4 PAO1 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_trn.head()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "#Pandas DataFrame to a NetworkX graph object\n", "\n", "trn = nx.from_pandas_edgelist(df= df_trn, source= 'Regulator', target='Target gene',\n", " edge_attr='mode of regulation')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('lasR', 0.4554885034355758),\n", " ('rpoN', 0.2601974253722576),\n", " ('rhlR', 0.2583054773711612),\n", " ('algU', 0.18597879411812526),\n", " ('algR', 0.18398061151100079),\n", " ('ihf', 0.17928776617070166),\n", " ('mexT', 0.14558365805789786),\n", " ('algZ', 0.14445022198989502),\n", " ('rhlI', 0.13157834338353888),\n", " ('mvfR', 0.12436859521563319)]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Calculating eigenvector centrality to get the hubs\n", "\n", "eigen_cen= nx.eigenvector_centrality(trn)\n", "hubs= sorted(eigen_cen.items(), key= lambda cc: cc[1], reverse= True)[:10]\n", "hubs" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "import community" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "#Running the clustering louvain algorithm to divide our network into clusters\n", "\n", "communities_trn = community.best_partition(trn)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "27" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#How many clusters do we get ? \n", "\n", "max(communities_trn.values())" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "#Extracting the LCC\n", "\n", "trn_lcc = max(nx.connected_component_subgraphs(trn), key=len)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "644" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(trn_lcc)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "#Running the clustering louvain algorithm to divide our network into clusters\n", "\n", "communities_trn = community.best_partition(trn_lcc)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "12" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#How many clusters do we get with the TRN's LCC? \n", "\n", "max(communities_trn.values())" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "nx.set_node_attributes(trn_lcc, values= communities_trn, name='modularity')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's extract the network clusters. " ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "cluster1 = [n for n in trn_lcc.nodes() if trn_lcc.node[n]['modularity'] == 0]\n", "\n", "cluster2 = [n for n in trn_lcc.nodes() if trn_lcc.node[n]['modularity'] == 1]\n", "\n", "cluster3 = [n for n in trn_lcc.nodes() if trn_lcc.node[n]['modularity'] == 2]\n", "\n", "cluster4 = [n for n in trn_lcc.nodes() if trn_lcc.node[n]['modularity'] == 3]\n", "\n", "cluster5 = [n for n in trn_lcc.nodes() if trn_lcc.node[n]['modularity'] == 4]\n", "\n", "cluster6 = [n for n in trn_lcc.nodes() if trn_lcc.node[n]['modularity'] == 5]\n", "\n", "cluster7 = [n for n in trn_lcc.nodes() if trn_lcc.node[n]['modularity'] == 6]\n", "\n", "cluster8 = [n for n in trn_lcc.nodes() if trn_lcc.node[n]['modularity'] == 7]\n", "\n", "cluster9 = [n for n in trn_lcc.nodes() if trn_lcc.node[n]['modularity'] == 8]\n", "\n", "cluster10 = [n for n in trn_lcc.nodes() if trn_lcc.node[n]['modularity'] == 9]\n", "\n", "cluster11 = [n for n in trn_lcc.nodes() if trn_lcc.node[n]['modularity'] == 10]\n", "\n", "cluster12 = [n for n in trn_lcc.nodes() if trn_lcc.node[n]['modularity'] == 11]\n", "\n", "cluster13 = [n for n in trn_lcc.nodes() if trn_lcc.node[n]['modularity'] == 12]\n", "\n", "cluster14 = [n for n in trn_lcc.nodes() if trn_lcc.node[n]['modularity'] == 13]\n" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nx.draw(trn_lcc, node_color = 'lightyellow', node_label = True, alpha = 0.6, font_size= 8)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "import csv\n", "with open('list_tfs.txt') as inputfile:\n", " results = list(csv.reader(inputfile))" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[['PA0779'], ['PA3697'], ['PA5471'], ['agmR'], ['aguR']]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results[:5]" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "#Concatenating the lists with itertools\n", "import itertools\n", "\n", "tf_list = list(itertools.chain.from_iterable(results))" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['PA0779', 'PA3697', 'PA5471', 'agmR', 'aguR']" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tf_list[:5]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Extracting the TF-TF net" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "tf_tf_list = []" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "for row in df_trn['Target gene']:\n", " if row in tf_list: \n", " tf_tf_list.append(1)\n", " else:\n", " tf_tf_list.append(0)\n", " " ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "df_trn['tf'] = tf_tf_list" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
RegulatorOperonTarget genemode of regulationExperimental EvidencePubMed ReferenceP. aeruginosa Straintf
0agmRNaNpqqH+lac-promoter, B-galactosidase assay and RT-PCR19902179ATCC0
1algRNaNhcnA-mutant and PCR19270096PAO10
2anrcoxcoxA-Microarray and Gene Chip data analysis19930444PAO10
3anrcoxcoxB-Microarray and Gene Chip data analysis19930444PAO10
4anrcoxcolII-Microarray and Gene Chip data analysis19930444PAO10
\n", "
" ], "text/plain": [ " Regulator Operon Target gene mode of regulation \\\n", "0 agmR NaN pqqH + \n", "1 algR NaN hcnA - \n", "2 anr cox coxA - \n", "3 anr cox coxB - \n", "4 anr cox colII - \n", "\n", " Experimental Evidence PubMed Reference \\\n", "0 lac-promoter, B-galactosidase assay and RT-PCR 19902179 \n", "1 mutant and PCR 19270096 \n", "2 Microarray and Gene Chip data analysis 19930444 \n", "3 Microarray and Gene Chip data analysis 19930444 \n", "4 Microarray and Gene Chip data analysis 19930444 \n", "\n", " P. aeruginosa Strain tf \n", "0 ATCC 0 \n", "1 PAO1 0 \n", "2 PAO1 0 \n", "3 PAO1 0 \n", "4 PAO1 0 " ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_trn.head()" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "tf_tf_net = df_trn[df_trn['tf'] == 1]" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(93, 8)" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tf_tf_net.shape" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
RegulatorOperonTarget genemode of regulationExperimental EvidencePubMed ReferenceP. aeruginosa Straintf
20bexRNaNbexR+Microarrays, chip, RT-PCR and lacZ-reporter20041030PAO11
27fhpRNaNfhpR-lacZ-reporter and B-galactosidase assay19767835PAO11
40lasRNaNtpbA+Transcriptome profiling and RT-PCR19543378PA141
90mexTNaNexsA-RT-PCR, lacZ-reporter and B-galactosidase assay19683048PAO11
98PA0779NaNfhpR-lacZ-reporter and B-galactosidase assay19767835PAO11
\n", "
" ], "text/plain": [ " Regulator Operon Target gene mode of regulation \\\n", "20 bexR NaN bexR + \n", "27 fhpR NaN fhpR - \n", "40 lasR NaN tpbA + \n", "90 mexT NaN exsA - \n", "98 PA0779 NaN fhpR - \n", "\n", " Experimental Evidence PubMed Reference \\\n", "20 Microarrays, chip, RT-PCR and lacZ-reporter 20041030 \n", "27 lacZ-reporter and B-galactosidase assay 19767835 \n", "40 Transcriptome profiling and RT-PCR 19543378 \n", "90 RT-PCR, lacZ-reporter and B-galactosidase assay 19683048 \n", "98 lacZ-reporter and B-galactosidase assay 19767835 \n", "\n", " P. aeruginosa Strain tf \n", "20 PAO1 1 \n", "27 PAO1 1 \n", "40 PA14 1 \n", "90 PAO1 1 \n", "98 PAO1 1 " ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tf_tf_net.head()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "#Pandas DataFrame to a NetworkX graph object\n", "\n", "tf_trn = nx.from_pandas_edgelist(df= tf_tf_net, source= 'Regulator', target='Target gene',\n", " edge_attr='mode of regulation')" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('rhlR', 0.5160165927773019),\n", " ('lasR', 0.5123180985978882),\n", " ('vfr', 0.34796505775838366),\n", " ('mvfR', 0.28813789014281227),\n", " ('algQ', 0.22507289775529424),\n", " ('ampR', 0.22507289775529424),\n", " ('tpbA', 0.15745834770732636),\n", " ('rpoN', 0.13009940360986172),\n", " ('mexR', 0.12683366531740034),\n", " ('rsaL', 0.11777357530685671)]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Calculating eigenvector centrality to get the hubs\n", "\n", "eigen_cen= nx.eigenvector_centrality(tf_trn)\n", "hubs= sorted(eigen_cen.items(), key= lambda cc: cc[1], reverse= True)[:10]\n", "hubs\n" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "#Clustering the TF- TF network\n", "\n", "communities_trn = community.best_partition(trn)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "27" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#How many clusters do we get ? \n", "\n", "max(communities_trn.values())" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "#Extracting the LCC\n", "tf_tf_lcc = max(nx.connected_component_subgraphs(tf_trn), key=len)\n" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "49" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(tf_tf_lcc)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "communities_trn = community.best_partition(tf_tf_lcc)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "8\n" ] } ], "source": [ "#How many clusters do we get ? \n", "\n", "print(max(communities_trn.values()) +1 )" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "nx.set_node_attributes(tf_tf_lcc, values= communities_trn, name='modularity')" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "cluster1 = [n for n in tf_tf_lcc.nodes() if tf_tf_lcc.node[n]['modularity'] == 0]\n", "\n", "cluster2 = [n for n in tf_tf_lcc.nodes() if tf_tf_lcc.node[n]['modularity'] == 1]\n", "\n", "cluster3 = [n for n in tf_tf_lcc.nodes() if tf_tf_lcc.node[n]['modularity'] == 2]\n", "\n", "cluster4 = [n for n in tf_tf_lcc.nodes() if tf_tf_lcc.node[n]['modularity'] == 3]\n", "\n", "cluster5 = [n for n in tf_tf_lcc.nodes() if tf_tf_lcc.node[n]['modularity'] == 4]\n", "\n", "cluster6 = [n for n in tf_tf_lcc.nodes() if tf_tf_lcc.node[n]['modularity'] == 5]\n", "\n", "cluster7 = [n for n in tf_tf_lcc.nodes() if tf_tf_lcc.node[n]['modularity'] == 6]\n", "\n", "cluster8 = [n for n in tf_tf_lcc.nodes() if tf_tf_lcc.node[n]['modularity'] == 7]" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['psrA', 'mexR', 'mexT', 'rpoS', 'exsA', 'exsD', 'nalC']" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cluster1" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['algR', 'algZ', 'algU', 'mucB']" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cluster2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we have our clusters of TFs, let's proceed to preprocess the expression data. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Expression data pre-processing" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
locustaggene nameReference descriptionref_GSE4026_WT_OD0.5ref_GSE4026_WT_OD0.5.1ref_GSE4026_WT_OD0.5.2ref_GSE4026_WT_OD0.5.3ref_GSE4026_WT_OD0.5.4ref_GSE4026_WT_OD0.5.5ref_GSE4026_WT_OD0.5.6...ref_GSE58862_WTref_GSE58862_WT.1ref_GSE58862_WT.2ref_GSE58862_WT.3ref_GSE58862_WT.4ref_GSE58862_WT.5ref_GSE58862_WT.6ref_GSE58862_WT.7ref_GSE58862_WT.8ref_GSE58862_WT.9
0PA4372PA437243740.39906-0.27788-0.55782-0.2989500.252070.305570.015565...-0.416470-0.42538-0.171690-0.553160-0.508280-0.501250-0.476490-0.533060-0.385570-0.510890
1PA4373PA43734375-0.17034-0.47932-0.37914-1.141500-0.652430.250240.211010...-0.470950-0.35411-0.186720-0.451170-0.510100-0.441120-0.355190-0.346370-0.291120-0.413110
2PA4374PA43744376-0.67948-0.248020.150950.2351000.79640-0.80024-0.279800...0.0629090.127070.046114-0.0009620.0748380.0407870.098608-0.0199720.0006300.047984
3PA4375PA43754377-0.87518-0.256270.810470.8928400.88056-0.89583-0.160360...0.0739010.193790.0583650.1104200.1193400.0559790.0947090.0763260.0419630.192550
4PA4376pncB24378-0.10441-0.49771-0.49071-0.072914-0.221180.38368-0.838580...0.0402020.176260.0356010.1078700.020122-0.0038380.0984580.0644120.0408280.187640
\n", "

5 rows × 562 columns

\n", "
" ], "text/plain": [ " locustag gene name Reference description ref_GSE4026_WT_OD0.5 \\\n", "0 PA4372 PA4372 4374 0.39906 \n", "1 PA4373 PA4373 4375 -0.17034 \n", "2 PA4374 PA4374 4376 -0.67948 \n", "3 PA4375 PA4375 4377 -0.87518 \n", "4 PA4376 pncB2 4378 -0.10441 \n", "\n", " ref_GSE4026_WT_OD0.5.1 ref_GSE4026_WT_OD0.5.2 ref_GSE4026_WT_OD0.5.3 \\\n", "0 -0.27788 -0.55782 -0.298950 \n", "1 -0.47932 -0.37914 -1.141500 \n", "2 -0.24802 0.15095 0.235100 \n", "3 -0.25627 0.81047 0.892840 \n", "4 -0.49771 -0.49071 -0.072914 \n", "\n", " ref_GSE4026_WT_OD0.5.4 ref_GSE4026_WT_OD0.5.5 ref_GSE4026_WT_OD0.5.6 \\\n", "0 0.25207 0.30557 0.015565 \n", "1 -0.65243 0.25024 0.211010 \n", "2 0.79640 -0.80024 -0.279800 \n", "3 0.88056 -0.89583 -0.160360 \n", "4 -0.22118 0.38368 -0.838580 \n", "\n", " ... ref_GSE58862_WT ref_GSE58862_WT.1 ref_GSE58862_WT.2 \\\n", "0 ... -0.416470 -0.42538 -0.171690 \n", "1 ... -0.470950 -0.35411 -0.186720 \n", "2 ... 0.062909 0.12707 0.046114 \n", "3 ... 0.073901 0.19379 0.058365 \n", "4 ... 0.040202 0.17626 0.035601 \n", "\n", " ref_GSE58862_WT.3 ref_GSE58862_WT.4 ref_GSE58862_WT.5 ref_GSE58862_WT.6 \\\n", "0 -0.553160 -0.508280 -0.501250 -0.476490 \n", "1 -0.451170 -0.510100 -0.441120 -0.355190 \n", "2 -0.000962 0.074838 0.040787 0.098608 \n", "3 0.110420 0.119340 0.055979 0.094709 \n", "4 0.107870 0.020122 -0.003838 0.098458 \n", "\n", " ref_GSE58862_WT.7 ref_GSE58862_WT.8 ref_GSE58862_WT.9 \n", "0 -0.533060 -0.385570 -0.510890 \n", "1 -0.346370 -0.291120 -0.413110 \n", "2 -0.019972 0.000630 0.047984 \n", "3 0.076326 0.041963 0.192550 \n", "4 0.064412 0.040828 0.187640 \n", "\n", "[5 rows x 562 columns]" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_x = pd.read_csv(\"colombos_paeru_exprdata_20151029.txt\", delimiter= '\\t', comment= '#')\n", "df_x.head()" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(4429, 562)" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_x.shape" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "def test_missing_data(df, fname):\n", " \"\"\"Look for missing entries.\"\"\"\n", " assert np.all(df.notnull()), fname + ' contains missing data'" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "fname = 'colombos_paeru_exprdata_20151029.txt'" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "#test_missing_data(df_x, fname)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "##Replacing the NaNs with the median of each column (expression condition)\n", "\n", "df_x = df_x.fillna(df_x.median())" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "test_missing_data(df_x, fname)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We're good to go. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Dividing the expression and annotation datasets" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "annot= df_x.iloc[:,:3]\n", "exp = df_x.iloc[:,3:]" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
locustaggene nameReference description
0PA4372PA43724374
1PA4373PA43734375
2PA4374PA43744376
3PA4375PA43754377
4PA4376pncB24378
\n", "
" ], "text/plain": [ " locustag gene name Reference description\n", "0 PA4372 PA4372 4374\n", "1 PA4373 PA4373 4375\n", "2 PA4374 PA4374 4376\n", "3 PA4375 PA4375 4377\n", "4 PA4376 pncB2 4378" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "annot.head()" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "from sklearn.preprocessing import StandardScaler as st\n", "std_scaler = st() # initialize stdScaler object\n", "df_ex = std_scaler.fit_transform(exp) # transform data\n", "df_ex= pd.DataFrame(df_ex) #go from std scaler object to df" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789...549550551552553554555556557558
count4.429000e+034.429000e+034.429000e+034.429000e+034.429000e+034.429000e+034.429000e+034.429000e+034.429000e+034.429000e+03...4.429000e+034.429000e+034.429000e+034.429000e+034.429000e+034.429000e+034.429000e+034.429000e+034.429000e+034.429000e+03
mean4.863023e-178.817362e-18-2.367590e-178.979045e-17-2.121932e-17-1.170760e-161.698423e-16-1.038782e-162.436525e-174.334106e-17...2.306176e-177.800890e-17-1.504028e-18-3.158458e-171.885048e-17-1.804833e-175.314231e-181.223276e-171.423813e-174.592298e-17
std1.000113e+001.000113e+001.000113e+001.000113e+001.000113e+001.000113e+001.000113e+001.000113e+001.000113e+001.000113e+00...1.000113e+001.000113e+001.000113e+001.000113e+001.000113e+001.000113e+001.000113e+001.000113e+001.000113e+001.000113e+00
min-5.444778e+00-5.402485e+00-5.175880e+00-5.738712e+00-7.796913e+00-4.816482e+00-6.040191e+00-6.599566e+00-5.761099e+00-5.464318e+00...-1.735807e+01-1.683504e+01-1.143493e+01-6.919876e+00-6.898993e+00-8.566631e+00-1.664414e+01-6.552998e+00-7.218859e+00-1.653566e+01
25%-5.464152e-01-5.354005e-01-5.116261e-01-4.707079e-01-4.466736e-01-5.495407e-01-5.051940e-01-5.257671e-01-4.737837e-01-4.758205e-01...-1.401863e-01-2.081378e-01-5.835356e-01-4.455856e-01-3.864561e-01-2.756227e-01-1.789979e-01-4.265152e-01-4.388975e-01-2.143702e-01
50%-1.506575e-01-1.576834e-01-1.813372e-01-1.658139e-01-5.037828e-02-1.536203e-01-1.413588e-01-1.568060e-01-1.696845e-01-9.344114e-02...8.138446e-025.073202e-02-9.720670e-03-9.252155e-02-1.003026e-01-6.418285e-026.412598e-02-7.475554e-02-5.028284e-024.370861e-02
75%3.657911e-013.390271e-012.900729e-012.170175e-013.526403e-013.772787e-013.187507e-013.482203e-012.236671e-013.457832e-01...2.863057e-013.187308e-015.695573e-012.902662e-012.125584e-011.466850e-013.100478e-012.907780e-013.594328e-013.209232e-01
max7.367306e+007.059914e+006.674187e+001.082831e+019.136374e+006.242306e+007.127717e+006.508462e+009.569231e+001.085524e+01...1.137373e+011.302729e+016.264489e+001.023223e+011.065201e+011.510992e+011.214637e+018.938069e+008.472909e+001.188193e+01
\n", "

8 rows × 559 columns

\n", "
" ], "text/plain": [ " 0 1 2 3 4 \\\n", "count 4.429000e+03 4.429000e+03 4.429000e+03 4.429000e+03 4.429000e+03 \n", "mean 4.863023e-17 8.817362e-18 -2.367590e-17 8.979045e-17 -2.121932e-17 \n", "std 1.000113e+00 1.000113e+00 1.000113e+00 1.000113e+00 1.000113e+00 \n", "min -5.444778e+00 -5.402485e+00 -5.175880e+00 -5.738712e+00 -7.796913e+00 \n", "25% -5.464152e-01 -5.354005e-01 -5.116261e-01 -4.707079e-01 -4.466736e-01 \n", "50% -1.506575e-01 -1.576834e-01 -1.813372e-01 -1.658139e-01 -5.037828e-02 \n", "75% 3.657911e-01 3.390271e-01 2.900729e-01 2.170175e-01 3.526403e-01 \n", "max 7.367306e+00 7.059914e+00 6.674187e+00 1.082831e+01 9.136374e+00 \n", "\n", " 5 6 7 8 9 \\\n", "count 4.429000e+03 4.429000e+03 4.429000e+03 4.429000e+03 4.429000e+03 \n", "mean -1.170760e-16 1.698423e-16 -1.038782e-16 2.436525e-17 4.334106e-17 \n", "std 1.000113e+00 1.000113e+00 1.000113e+00 1.000113e+00 1.000113e+00 \n", "min -4.816482e+00 -6.040191e+00 -6.599566e+00 -5.761099e+00 -5.464318e+00 \n", "25% -5.495407e-01 -5.051940e-01 -5.257671e-01 -4.737837e-01 -4.758205e-01 \n", "50% -1.536203e-01 -1.413588e-01 -1.568060e-01 -1.696845e-01 -9.344114e-02 \n", "75% 3.772787e-01 3.187507e-01 3.482203e-01 2.236671e-01 3.457832e-01 \n", "max 6.242306e+00 7.127717e+00 6.508462e+00 9.569231e+00 1.085524e+01 \n", "\n", " ... 549 550 551 552 \\\n", "count ... 4.429000e+03 4.429000e+03 4.429000e+03 4.429000e+03 \n", "mean ... 2.306176e-17 7.800890e-17 -1.504028e-18 -3.158458e-17 \n", "std ... 1.000113e+00 1.000113e+00 1.000113e+00 1.000113e+00 \n", "min ... -1.735807e+01 -1.683504e+01 -1.143493e+01 -6.919876e+00 \n", "25% ... -1.401863e-01 -2.081378e-01 -5.835356e-01 -4.455856e-01 \n", "50% ... 8.138446e-02 5.073202e-02 -9.720670e-03 -9.252155e-02 \n", "75% ... 2.863057e-01 3.187308e-01 5.695573e-01 2.902662e-01 \n", "max ... 1.137373e+01 1.302729e+01 6.264489e+00 1.023223e+01 \n", "\n", " 553 554 555 556 557 \\\n", "count 4.429000e+03 4.429000e+03 4.429000e+03 4.429000e+03 4.429000e+03 \n", "mean 1.885048e-17 -1.804833e-17 5.314231e-18 1.223276e-17 1.423813e-17 \n", "std 1.000113e+00 1.000113e+00 1.000113e+00 1.000113e+00 1.000113e+00 \n", "min -6.898993e+00 -8.566631e+00 -1.664414e+01 -6.552998e+00 -7.218859e+00 \n", "25% -3.864561e-01 -2.756227e-01 -1.789979e-01 -4.265152e-01 -4.388975e-01 \n", "50% -1.003026e-01 -6.418285e-02 6.412598e-02 -7.475554e-02 -5.028284e-02 \n", "75% 2.125584e-01 1.466850e-01 3.100478e-01 2.907780e-01 3.594328e-01 \n", "max 1.065201e+01 1.510992e+01 1.214637e+01 8.938069e+00 8.472909e+00 \n", "\n", " 558 \n", "count 4.429000e+03 \n", "mean 4.592298e-17 \n", "std 1.000113e+00 \n", "min -1.653566e+01 \n", "25% -2.143702e-01 \n", "50% 4.370861e-02 \n", "75% 3.209232e-01 \n", "max 1.188193e+01 \n", "\n", "[8 rows x 559 columns]" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_ex.describe()## check if mean = 0 , s.d. = 1 " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's now apply a PCA to our normalized data. " ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "from sklearn.decomposition import PCA as PCA\n", "# apply dimensionality reduction\n", "pca = PCA(svd_solver='randomized', random_state = 42).fit(df_ex)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0, 500)" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cum_exp_var = np.cumsum(pca.explained_variance_ratio_)\n", "\n", "# look at it\n", "plt.plot(cum_exp_var, color = 'salmon', alpha = 0.7)\n", "plt.xlabel('Number of dimensions')\n", "plt.ylabel('Cumulative explained variance ratio')\n", "#plt.axvline(x= 14 , color='k', linestyle='--')\n", "plt.title('PCA Explained Variance ', fontsize= 20)\n", "plt.xlim(0,500)\n", "#plt.savefig('PCA-var.tiff',dpi=500, bbox_inches='tight')" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [], "source": [ "vr = np.cumsum(pca.explained_variance_ratio_) " ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.98384021483137485" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vr[300]" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [], "source": [ "n_components = 300" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [], "source": [ "##Now let's tranform our data to a PCA object using the original index, so we can track of the genes\n", "\n", "df_pca = pca.transform(df_ex)\n", "\n", "df_pca = pd.DataFrame(df_pca,\n", " index= df_x.index)" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [], "source": [ "df_exp = df_pca.iloc[:,:n_components] ## We'll keep 420 principal components" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [], "source": [ "##changing the col. names to PC\n", "df_exp.columns = ['PC' + str(x) for x in range(1, n_components+1)] " ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PC1PC2PC3PC4PC5PC6PC7PC8PC9PC10...PC291PC292PC293PC294PC295PC296PC297PC298PC299PC300
0-0.044517-4.141681-0.8598637.7361529.5017002.885544-4.538022-4.877982-2.525804-3.774753...-0.7423660.1333800.237840-0.187477-0.268732-0.507753-0.3357360.187547-0.2600690.159282
1-3.9002091.0835490.149836-0.5985524.3739914.204264-5.794299-6.983968-2.089755-0.924027...-0.124829-0.318707-0.099551-0.316073-0.470012-0.152636-0.1544080.184063-0.0791130.144670
2-0.401913-3.6233441.2792732.080450-0.3827671.692863-2.0634680.2494171.8497850.101401...-0.2267690.208678-0.3970890.0897040.013919-0.145869-0.2930110.088385-0.132864-0.089518
3-2.783305-0.5302890.5840590.663760-0.3691430.863311-4.3371113.3654411.862070-0.064619...0.055104-0.1932680.2016490.227109-0.3458830.4192050.1446200.2097310.012862-0.226739
4-0.679018-3.0712621.8361921.8070621.569900-1.816808-3.1502451.240399-0.033679-0.717069...-0.083740-0.038305-0.2919220.2223950.127059-0.0305850.096032-0.235622-0.268026-0.252741
\n", "

5 rows × 300 columns

\n", "
" ], "text/plain": [ " PC1 PC2 PC3 PC4 PC5 PC6 PC7 \\\n", "0 -0.044517 -4.141681 -0.859863 7.736152 9.501700 2.885544 -4.538022 \n", "1 -3.900209 1.083549 0.149836 -0.598552 4.373991 4.204264 -5.794299 \n", "2 -0.401913 -3.623344 1.279273 2.080450 -0.382767 1.692863 -2.063468 \n", "3 -2.783305 -0.530289 0.584059 0.663760 -0.369143 0.863311 -4.337111 \n", "4 -0.679018 -3.071262 1.836192 1.807062 1.569900 -1.816808 -3.150245 \n", "\n", " PC8 PC9 PC10 ... PC291 PC292 PC293 \\\n", "0 -4.877982 -2.525804 -3.774753 ... -0.742366 0.133380 0.237840 \n", "1 -6.983968 -2.089755 -0.924027 ... -0.124829 -0.318707 -0.099551 \n", "2 0.249417 1.849785 0.101401 ... -0.226769 0.208678 -0.397089 \n", "3 3.365441 1.862070 -0.064619 ... 0.055104 -0.193268 0.201649 \n", "4 1.240399 -0.033679 -0.717069 ... -0.083740 -0.038305 -0.291922 \n", "\n", " PC294 PC295 PC296 PC297 PC298 PC299 PC300 \n", "0 -0.187477 -0.268732 -0.507753 -0.335736 0.187547 -0.260069 0.159282 \n", "1 -0.316073 -0.470012 -0.152636 -0.154408 0.184063 -0.079113 0.144670 \n", "2 0.089704 0.013919 -0.145869 -0.293011 0.088385 -0.132864 -0.089518 \n", "3 0.227109 -0.345883 0.419205 0.144620 0.209731 0.012862 -0.226739 \n", "4 0.222395 0.127059 -0.030585 0.096032 -0.235622 -0.268026 -0.252741 \n", "\n", "[5 rows x 300 columns]" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_exp.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Multi-class classification data preparation: Assign the cluster labels to the expression dataframe." ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
RegulatorOperonTarget genemode of regulationExperimental EvidencePubMed ReferenceP. aeruginosa Straintf
1015vfrNaNvfr+Prodoric18974177PAO11
1016vqsMNaNpprB+Prodoric18974177PAO11
1017vqsMNaNrpoS+Prodoric18974177PAO10
1018vqsMNaNvqsR+Prodoric18974177PAO11
1019vqsRNaNpprB-Prodoric18974177PAO11
\n", "
" ], "text/plain": [ " Regulator Operon Target gene mode of regulation Experimental Evidence \\\n", "1015 vfr NaN vfr + Prodoric \n", "1016 vqsM NaN pprB + Prodoric \n", "1017 vqsM NaN rpoS + Prodoric \n", "1018 vqsM NaN vqsR + Prodoric \n", "1019 vqsR NaN pprB - Prodoric \n", "\n", " PubMed Reference P. aeruginosa Strain tf \n", "1015 18974177 PAO1 1 \n", "1016 18974177 PAO1 1 \n", "1017 18974177 PAO1 0 \n", "1018 18974177 PAO1 1 \n", "1019 18974177 PAO1 1 " ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_trn.tail()" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [], "source": [ "del(df_trn['tf'])" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [], "source": [ "df_trn.columns = ['tf', 'operon', 'tg', 'regtype', 'ev', 'PMID', 'strain']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Cluster 1:" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['psrA', 'mexR', 'mexT', 'rpoS', 'exsA', 'exsD', 'nalC']" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cluster1" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [], "source": [ "#Now let's filter the regulons of each TF from the TRN\n", "\n", "cluster_1 = df_trn[(df_trn['tf'] =='gbuR') | (df_trn['tf'] =='pfeR')\\\n", " | (df_trn['tf'] =='pchR') | (df_trn['tf'] =='fur')\\\n", " | (df_trn['tf'] =='agmR')| (df_trn['tf'] =='glpR')\n", " ]" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "88\n" ] } ], "source": [ "cluster_1_tgs = []\n", "\n", "#Making a list that corresponds to the first cluster's target genes (TGs)\n", "\n", "for row in cluster_1['tg']:\n", " cluster_1_tgs.append(row)\n", " \n", "#Make a set to avoid repetition, and then re-make a list out of it.\n", " \n", "cluster1_tgs = list(set(cluster_1_tgs))\n", "print(len(cluster1_tgs))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Cluster 2: " ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['algR', 'algZ', 'algU', 'mucB']" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cluster2" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [], "source": [ "#Now let's filter the regulons of each TF from the TRN\n", "\n", "cluster_2 = df_trn[(df_trn['tf'] =='gacA') | (df_trn['tf'] =='qscR')\\\n", " | (df_trn['tf'] =='ampR') | (df_trn['tf'] =='algQ')\\\n", " | (df_trn['tf'] =='algR4')| (df_trn['tf'] =='mvfR')\\\n", " | (df_trn['tf'] =='rhlR') | (df_trn['tf'] =='rsaL')\\\n", " | (df_trn['tf'] =='ihf')| (df_trn['tf'] =='algR3')\\\n", " | (df_trn['tf'] =='lasR')\n", " ]" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "140\n" ] } ], "source": [ "cluster_2_tgs = []\n", "\n", "#Making a list that corresponds to the second cluster's target genes (TGs)\n", "\n", "for row in cluster_2['tg']:\n", " cluster_2_tgs.append(row)\n", " \n", " \n", "#Make a set to avoid repetition, and then re-make a list out of it.\n", " \n", "cluster2_tgs = list(set(cluster_2_tgs))\n", "\n", "#Let's see how many TGs does cluster 2 have \n", "\n", "print(len(cluster2_tgs))" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['ptxS', 'rpoD', 'vfr', 'pvdS', 'ptxR', 'toxR', 'mvtA', 'fleQ', 'hu']" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cluster3" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [], "source": [ "#Now let's filter the regulons of each TF from the TRN\n", "\n", "cluster_3 = df_trn[(df_trn['tf'] =='fleQ') | (df_trn['tf'] =='vfr')\\\n", " | (df_trn['tf'] =='pvdS') | (df_trn['tf'] =='hu')\\\n", " | (df_trn['tf'] =='ptxR')| (df_trn['tf'] =='mvtA')\\\n", " | (df_trn['tf'] =='ptxS') | (df_trn['tf'] =='toxR')\\\n", " | (df_trn['tf'] =='rpoD')\n", " ]\n", "\n" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "93\n" ] } ], "source": [ "cluster_3_tgs = []\n", "\n", "#Making a list that corresponds to the cluster's target genes (TGs)\n", "\n", "for row in cluster_3['tg']:\n", " cluster_3_tgs.append(row)\n", " \n", "#Make a set to avoid repetition, and then re-make a list out of it.\n", "\n", " \n", "cluster3_tgs = list(set(cluster_3_tgs))\n", "\n", "print(len(cluster3_tgs))\n" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['pilR', 'fhpR', 'PA0779', 'pilA', 'rpoN']" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cluster4" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [], "source": [ "#Now let's filter the regulons of each TF from the TRN\n", "\n", "cluster_4 = df_trn[(df_trn['tf'] =='exsA') | (df_trn['tf'] =='mexR')\\\n", " | (df_trn['tf'] =='mexT') | (df_trn['tf'] =='nalC')\\\n", " | (df_trn['tf'] =='psrA')| (df_trn['tf'] =='rpoS')\\\n", " | (df_trn['tf'] =='exsD') \n", " ]\n" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "81\n" ] } ], "source": [ "cluster_4_tgs = []\n", "\n", "#Making a list that corresponds to the cluster's target genes (TGs)...\n", "\n", "for row in cluster_4['tg']:\n", " cluster_4_tgs.append(row)\n", " \n", "#Make a set to avoid repetition, and then re-make a list out of it...\n", "\n", " \n", "cluster4_tgs = list(set(cluster_4_tgs))\n", "\n", "print(len(cluster4_tgs))\n" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['algR3',\n", " 'ihf',\n", " 'rhlR',\n", " 'ampR',\n", " 'gacA',\n", " 'qscR',\n", " 'rsaL',\n", " 'algQ',\n", " 'mvfR',\n", " 'algR4',\n", " 'lasR']" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cluster5" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [], "source": [ "cluster_5 = df_trn[(df_trn['tf'] =='dnr') | (df_trn['tf'] =='anr')\\\n", " | (df_trn['tf'] =='narL') ]" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "61\n" ] } ], "source": [ "cluster_5_tgs = []\n", "\n", "for row in cluster_5['tg']:\n", " cluster_5_tgs.append(row)\n", " \n", "cluster5_tgs = list(set(cluster_5_tgs))\n", "\n", "print(len(cluster5_tgs))\n" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['pmrA', 'tpbA', 'phoQ', 'phoP']" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cluster6" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [], "source": [ "#Now let's filter the regulons of each TF from the TRN\n", "\n", "cluster_6 = df_trn[(df_trn['tf'] =='PA0779') | (df_trn['tf'] =='pilA')\\\n", " | (df_trn['tf'] =='fhpR') | (df_trn['tf'] =='rpoN')\\\n", " | (df_trn['tf'] =='pilR')]" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "75\n" ] } ], "source": [ "cluster_6_tgs = []\n", "\n", "for row in cluster_6['tg']:\n", " cluster_6_tgs.append(row)\n", " \n", "cluster6_tgs = list(set(cluster_6_tgs))\n", "\n", "print(len(cluster6_tgs))\n" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['agmR', 'pchR', 'gbuR', 'glpR', 'fur', 'pfeR']" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cluster7" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [], "source": [ "#Now let's filter the regulons of each TF from the TRN\n", "\n", "cluster_7 = df_trn[(df_trn['tf'] =='phoQ') | (df_trn['tf'] =='pmrA')\\\n", " | (df_trn['tf'] =='phoP') | (df_trn['tf'] =='tbpA')]" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "55\n" ] } ], "source": [ "cluster_7_tgs = []\n", "\n", "for row in cluster_7['tg']:\n", " cluster_7_tgs.append(row)\n", " \n", "cluster7_tgs = list(set(cluster_7_tgs))\n", "\n", "print(len(cluster7_tgs))\n" ] }, { "cell_type": "code", "execution_count": 162, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['algR', 'algZ', 'algU', 'mucB']" ] }, "execution_count": 162, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cluster2" ] }, { "cell_type": "code", "execution_count": 164, "metadata": {}, "outputs": [], "source": [ "cluster_8 = df_trn[(df_trn['tf'] =='algR') | (df_trn['tf'] =='algZ')\\\n", " | (df_trn['tf'] =='algU') | (df_trn['tf'] =='mucB')]" ] }, { "cell_type": "code", "execution_count": 165, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "58\n" ] } ], "source": [ "cluster_8_tgs = []\n", "\n", "for row in cluster_8['tg']:\n", " cluster_8_tgs.append(row)\n", " \n", "cluster8_tgs = list(set(cluster_8_tgs))\n", "\n", "print(len(cluster8_tgs))\n" ] }, { "cell_type": "code", "execution_count": 166, "metadata": {}, "outputs": [], "source": [ "#Initializing the labels' lists\n", "\n", "labels1 = []\n", "labels2 = []\n", "labels3 = []\n", "labels4 = []\n", "labels5 = []\n", "labels6 = []\n", "labels7 = []\n", "labels8 = []\n" ] }, { "cell_type": "code", "execution_count": 167, "metadata": {}, "outputs": [], "source": [ "##Seting up the labels for each cluster\n", "\n", "#C1\n", "for row in df_x['gene name']:\n", " if row in cluster1_tgs:\n", " labels1.append(1)\n", " else:\n", " labels1.append(0)\n", "\n", " \n", "#C2 \n", "for row in df_x['gene name']:\n", " if row in cluster2_tgs:\n", " labels2.append(1)\n", " else:\n", " labels2.append(0)\n", " \n", "#C3\n", "for row in df_x['gene name']:\n", " if row in cluster3_tgs:\n", " labels3.append(1)\n", " else:\n", " labels3.append(0)\n", "\n", "#C4 \n", "for row in df_x['gene name']:\n", " if row in cluster4_tgs:\n", " labels4.append(1)\n", " else:\n", " labels4.append(0)\n", " \n", " \n", "#C5\n", "for row in df_x['gene name']:\n", " if row in cluster5_tgs:\n", " labels5.append(1)\n", " else:\n", " labels5.append(0)\n", " \n", "#C6\n", "for row in df_x['gene name']:\n", " if row in cluster6_tgs:\n", " labels6.append(1)\n", " else:\n", " labels6.append(0)\n", " \n", "#C7\n", "for row in df_x['gene name']:\n", " if row in cluster7_tgs:\n", " labels7.append(1)\n", " else:\n", " labels7.append(0)\n", " \n", "#C8\n", "for row in df_x['gene name']:\n", " if row in cluster8_tgs:\n", " labels8.append(1)\n", " else:\n", " labels8.append(0)" ] }, { "cell_type": "code", "execution_count": 168, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/manoloflores/anaconda/lib/python3.6/site-packages/ipykernel/__main__.py:3: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", " app.launch_new_instance()\n", "/Users/manoloflores/anaconda/lib/python3.6/site-packages/ipykernel/__main__.py:4: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", "/Users/manoloflores/anaconda/lib/python3.6/site-packages/ipykernel/__main__.py:5: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", "/Users/manoloflores/anaconda/lib/python3.6/site-packages/ipykernel/__main__.py:6: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", "/Users/manoloflores/anaconda/lib/python3.6/site-packages/ipykernel/__main__.py:7: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", "/Users/manoloflores/anaconda/lib/python3.6/site-packages/ipykernel/__main__.py:8: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", "/Users/manoloflores/anaconda/lib/python3.6/site-packages/ipykernel/__main__.py:9: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", "/Users/manoloflores/anaconda/lib/python3.6/site-packages/ipykernel/__main__.py:10: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n" ] } ], "source": [ "# Adding the cluster labels for each cluster as extra columns\n", "\n", "df_exp['cluster 1'] = labels1\n", "df_exp['cluster 2'] = labels2\n", "df_exp['cluster 3'] = labels3\n", "df_exp['cluster 4'] = labels4\n", "df_exp['cluster 5'] = labels5\n", "df_exp['cluster 6'] = labels6\n", "df_exp['cluster 7'] = labels7\n", "df_exp['cluster 8'] = labels8\n" ] }, { "cell_type": "code", "execution_count": 169, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PC1PC2PC3PC4PC5PC6PC7PC8PC9PC10...PC300cluster 1cluster 2cluster 3cluster 4cluster 5cluster 6cluster 7TGscluster 8
0-0.044517-4.141681-0.8598637.7361529.5017002.885544-4.538022-4.877982-2.525804-3.774753...0.159282000000000
1-3.9002091.0835490.149836-0.5985524.3739914.204264-5.794299-6.983968-2.089755-0.924027...0.144670000000000
2-0.401913-3.6233441.2792732.080450-0.3827671.692863-2.0634680.2494171.8497850.101401...-0.089518000000000
3-2.783305-0.5302890.5840590.663760-0.3691430.863311-4.3371113.3654411.862070-0.064619...-0.226739000000000
4-0.679018-3.0712621.8361921.8070621.569900-1.816808-3.1502451.240399-0.033679-0.717069...-0.252741000000000
\n", "

5 rows × 309 columns

\n", "
" ], "text/plain": [ " PC1 PC2 PC3 PC4 PC5 PC6 PC7 \\\n", "0 -0.044517 -4.141681 -0.859863 7.736152 9.501700 2.885544 -4.538022 \n", "1 -3.900209 1.083549 0.149836 -0.598552 4.373991 4.204264 -5.794299 \n", "2 -0.401913 -3.623344 1.279273 2.080450 -0.382767 1.692863 -2.063468 \n", "3 -2.783305 -0.530289 0.584059 0.663760 -0.369143 0.863311 -4.337111 \n", "4 -0.679018 -3.071262 1.836192 1.807062 1.569900 -1.816808 -3.150245 \n", "\n", " PC8 PC9 PC10 ... PC300 cluster 1 cluster 2 \\\n", "0 -4.877982 -2.525804 -3.774753 ... 0.159282 0 0 \n", "1 -6.983968 -2.089755 -0.924027 ... 0.144670 0 0 \n", "2 0.249417 1.849785 0.101401 ... -0.089518 0 0 \n", "3 3.365441 1.862070 -0.064619 ... -0.226739 0 0 \n", "4 1.240399 -0.033679 -0.717069 ... -0.252741 0 0 \n", "\n", " cluster 3 cluster 4 cluster 5 cluster 6 cluster 7 TGs cluster 8 \n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", "[5 rows x 309 columns]" ] }, "execution_count": 169, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_exp.head()" ] }, { "cell_type": "code", "execution_count": 170, "metadata": {}, "outputs": [], "source": [ "#Let's make a list to filter out the TGs in each cluster\n", "#This will allow us to use only the genes that are regulated by TFs\n", "#(i.e. the TGs of the TRN) as training data\n", "\n", "\n", "TGs_list = []\n", "\n", "for row in df_x['gene name']:\n", " if row in cluster1_tgs:\n", " TGs_list.append(1)\n", " \n", " elif row in cluster2_tgs:\n", " TGs_list.append(1)\n", " \n", " elif row in cluster3_tgs:\n", " TGs_list.append(1)\n", " \n", " elif row in cluster4_tgs:\n", " TGs_list.append(1)\n", " \n", " elif row in cluster5_tgs:\n", " TGs_list.append(1)\n", " \n", " elif row in cluster6_tgs:\n", " TGs_list.append(1)\n", " \n", " elif row in cluster7_tgs:\n", " TGs_list.append(1)\n", " \n", " elif row in cluster8_tgs:\n", " TGs_list.append(1)\n", " \n", " else:\n", " TGs_list.append(0) " ] }, { "cell_type": "code", "execution_count": 171, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/manoloflores/anaconda/lib/python3.6/site-packages/ipykernel/__main__.py:3: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", " app.launch_new_instance()\n" ] } ], "source": [ "##Adding the TG list as a column to the expression data\n", "\n", "df_exp['TGs'] = TGs_list" ] }, { "cell_type": "code", "execution_count": 172, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PC1PC2PC3PC4PC5PC6PC7PC8PC9PC10...PC300cluster 1cluster 2cluster 3cluster 4cluster 5cluster 6cluster 7TGscluster 8
0-0.044517-4.141681-0.8598637.7361529.5017002.885544-4.538022-4.877982-2.525804-3.774753...0.159282000000000
1-3.9002091.0835490.149836-0.5985524.3739914.204264-5.794299-6.983968-2.089755-0.924027...0.144670000000000
2-0.401913-3.6233441.2792732.080450-0.3827671.692863-2.0634680.2494171.8497850.101401...-0.089518000000000
3-2.783305-0.5302890.5840590.663760-0.3691430.863311-4.3371113.3654411.862070-0.064619...-0.226739000000000
4-0.679018-3.0712621.8361921.8070621.569900-1.816808-3.1502451.240399-0.033679-0.717069...-0.252741000000000
\n", "

5 rows × 309 columns

\n", "
" ], "text/plain": [ " PC1 PC2 PC3 PC4 PC5 PC6 PC7 \\\n", "0 -0.044517 -4.141681 -0.859863 7.736152 9.501700 2.885544 -4.538022 \n", "1 -3.900209 1.083549 0.149836 -0.598552 4.373991 4.204264 -5.794299 \n", "2 -0.401913 -3.623344 1.279273 2.080450 -0.382767 1.692863 -2.063468 \n", "3 -2.783305 -0.530289 0.584059 0.663760 -0.369143 0.863311 -4.337111 \n", "4 -0.679018 -3.071262 1.836192 1.807062 1.569900 -1.816808 -3.150245 \n", "\n", " PC8 PC9 PC10 ... PC300 cluster 1 cluster 2 \\\n", "0 -4.877982 -2.525804 -3.774753 ... 0.159282 0 0 \n", "1 -6.983968 -2.089755 -0.924027 ... 0.144670 0 0 \n", "2 0.249417 1.849785 0.101401 ... -0.089518 0 0 \n", "3 3.365441 1.862070 -0.064619 ... -0.226739 0 0 \n", "4 1.240399 -0.033679 -0.717069 ... -0.252741 0 0 \n", "\n", " cluster 3 cluster 4 cluster 5 cluster 6 cluster 7 TGs cluster 8 \n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", "[5 rows x 309 columns]" ] }, "execution_count": 172, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_exp.head()" ] }, { "cell_type": "code", "execution_count": 173, "metadata": {}, "outputs": [], "source": [ "##Let's filter out the genes that are regulated by TFs\n", "\n", "regulons_df = df_exp[df_exp['TGs'] == 1]" ] }, { "cell_type": "code", "execution_count": 174, "metadata": {}, "outputs": [], "source": [ "del(regulons_df['TGs'])" ] }, { "cell_type": "code", "execution_count": 175, "metadata": {}, "outputs": [], "source": [ "#Let's filter out the genes that are not regulated by TFs\n", "\n", "non_reg_df = df_exp[df_exp['TGs'] == 0]" ] }, { "cell_type": "code", "execution_count": 176, "metadata": {}, "outputs": [], "source": [ "del(non_reg_df['TGs'])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 177, "metadata": {}, "outputs": [], "source": [ "##Making a dataframe called noise, by randomly picking \n", "##genes that are NOT REGULATED by TFs without replacement\n", "\n", "noise = non_reg_df.sample(n =20, replace = False, axis = 0, random_state = 42)" ] }, { "cell_type": "code", "execution_count": 178, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(334, 308)" ] }, "execution_count": 178, "metadata": {}, "output_type": "execute_result" } ], "source": [ "regulons_with_noise = pd.concat([regulons_df, noise]) ## unbiased train/test dataset \n", "\n", "regulons_with_noise.shape ##Let's look at the nrows and ncols" ] }, { "cell_type": "code", "execution_count": 185, "metadata": {}, "outputs": [], "source": [ "X_data = regulons_with_noise.iloc[:,:-8]\n", "y_data = regulons_with_noise.iloc[:,-8:]" ] }, { "cell_type": "code", "execution_count": 180, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split" ] }, { "cell_type": "code", "execution_count": 186, "metadata": {}, "outputs": [], "source": [ "#The test subset will correspond to 30% of the data at random\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(X_data, y_data, test_size=0.3, random_state=42) " ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [], "source": [ "import keras\n", "from keras.models import Sequential\n", "from keras.layers import Dense\n", "from keras.utils import np_utils\n", "from keras.metrics import categorical_accuracy\n", "from sklearn.model_selection import cross_val_score\n", "from sklearn.model_selection import KFold\n", "from sklearn.preprocessing import LabelEncoder\n", "from sklearn.metrics import classification_report,accuracy_score\\\n", ",confusion_matrix\n" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " Loading BokehJS ...\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " var force = true;\n", "\n", " if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", " var JS_MIME_TYPE = 'application/javascript';\n", " var HTML_MIME_TYPE = 'text/html';\n", " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " var CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " var script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " var cell = handle.cell;\n", "\n", " var id = cell.output_area._bokeh_element_id;\n", " var server_id = cell.output_area._bokeh_server_id;\n", " // Clean up Bokeh references\n", " if (id !== undefined) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd, {\n", " iopub: {\n", " output: function(msg) {\n", " var element_id = msg.content.text.trim();\n", " Bokeh.index[element_id].model.document.clear();\n", " delete Bokeh.index[element_id];\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " var output_area = handle.output_area;\n", " var output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[0].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " var bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " var script_attrs = bk_div.children[0].attributes;\n", " for (var i = 0; i < script_attrs.length; i++) {\n", " toinsert[0].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " var toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[0]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " var events = require('base/js/events');\n", " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", "\n", " \n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " var NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"

\\n\"+\n", " \"
    \\n\"+\n", " \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n", " \"
  • use INLINE resources instead, as so:
  • \\n\"+\n", " \"
\\n\"+\n", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded() {\n", " var el = document.getElementById(\"27eca171-90c4-4681-9b31-941461252704\");\n", " if (el != null) {\n", " el.textContent = \"BokehJS is loading...\";\n", " }\n", " if (root.Bokeh !== undefined) {\n", " if (el != null) {\n", " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(display_loaded, 100)\n", " }\n", " }\n", "\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n", " }\n", " finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.info(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(js_urls, callback) {\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = js_urls.length;\n", " for (var i = 0; i < js_urls.length; i++) {\n", " var url = js_urls[i];\n", " var s = document.createElement('script');\n", " s.src = url;\n", " s.async = false;\n", " s.onreadystatechange = s.onload = function() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.log(\"Bokeh: all BokehJS libraries loaded\");\n", " run_callbacks()\n", " }\n", " };\n", " s.onerror = function() {\n", " console.warn(\"failed to load library \" + url);\n", " };\n", " console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.getElementsByTagName(\"head\")[0].appendChild(s);\n", " }\n", " };var element = document.getElementById(\"27eca171-90c4-4681-9b31-941461252704\");\n", " if (element == null) {\n", " console.log(\"Bokeh: ERROR: autoload.js configured with elementid '27eca171-90c4-4681-9b31-941461252704' but no matching script tag was found. \")\n", " return false;\n", " }\n", "\n", " var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.14.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.14.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.14.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-0.12.14.min.js\"];\n", "\n", " var inline_js = [\n", " function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", " \n", " function(Bokeh) {\n", " \n", " },\n", " function(Bokeh) {\n", " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.14.min.css\");\n", " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.14.min.css\");\n", " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.14.min.css\");\n", " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.14.min.css\");\n", " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.14.min.css\");\n", " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.14.min.css\");\n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " \n", " if ((root.Bokeh !== undefined) || (force === true)) {\n", " for (var i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }if (force === true) {\n", " display_loaded();\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " var cell = $(document.getElementById(\"27eca171-90c4-4681-9b31-941461252704\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", "\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(js_urls, function() {\n", " console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n var NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"
    \\n\"+\n \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n \"
  • use INLINE resources instead, as so:
  • \\n\"+\n \"
\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n var el = document.getElementById(\"27eca171-90c4-4681-9b31-941461252704\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n }\n finally {\n delete root._bokeh_onload_callbacks\n }\n console.info(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(js_urls, callback) {\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = js_urls.length;\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n var s = document.createElement('script');\n s.src = url;\n s.async = false;\n s.onreadystatechange = s.onload = function() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.log(\"Bokeh: all BokehJS libraries loaded\");\n run_callbacks()\n }\n };\n s.onerror = function() {\n console.warn(\"failed to load library \" + url);\n };\n console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.getElementsByTagName(\"head\")[0].appendChild(s);\n }\n };var element = document.getElementById(\"27eca171-90c4-4681-9b31-941461252704\");\n if (element == null) {\n console.log(\"Bokeh: ERROR: autoload.js configured with elementid '27eca171-90c4-4681-9b31-941461252704' but no matching script tag was found. \")\n return false;\n }\n\n var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.14.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.14.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.14.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-0.12.14.min.js\"];\n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n \n function(Bokeh) {\n \n },\n function(Bokeh) {\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.14.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.14.min.css\");\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.14.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.14.min.css\");\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.14.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.14.min.css\");\n }\n ];\n\n function run_inline_js() {\n \n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n var cell = $(document.getElementById(\"27eca171-90c4-4681-9b31-941461252704\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(js_urls, function() {\n console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " var force = true;\n", "\n", " if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", " var JS_MIME_TYPE = 'application/javascript';\n", " var HTML_MIME_TYPE = 'text/html';\n", " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " var CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " var script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " var cell = handle.cell;\n", "\n", " var id = cell.output_area._bokeh_element_id;\n", " var server_id = cell.output_area._bokeh_server_id;\n", " // Clean up Bokeh references\n", " if (id !== undefined) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd, {\n", " iopub: {\n", " output: function(msg) {\n", " var element_id = msg.content.text.trim();\n", " Bokeh.index[element_id].model.document.clear();\n", " delete Bokeh.index[element_id];\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " var output_area = handle.output_area;\n", " var output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[0].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " var bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " var script_attrs = bk_div.children[0].attributes;\n", " for (var i = 0; i < script_attrs.length; i++) {\n", " toinsert[0].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " var toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[0]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " var events = require('base/js/events');\n", " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", "\n", " \n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " var NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"

\\n\"+\n", " \"
    \\n\"+\n", " \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n", " \"
  • use INLINE resources instead, as so:
  • \\n\"+\n", " \"
\\n\"+\n", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded() {\n", " var el = document.getElementById(null);\n", " if (el != null) {\n", " el.textContent = \"BokehJS is loading...\";\n", " }\n", " if (root.Bokeh !== undefined) {\n", " if (el != null) {\n", " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(display_loaded, 100)\n", " }\n", " }\n", "\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n", " }\n", " finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.info(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(js_urls, callback) {\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = js_urls.length;\n", " for (var i = 0; i < js_urls.length; i++) {\n", " var url = js_urls[i];\n", " var s = document.createElement('script');\n", " s.src = url;\n", " s.async = false;\n", " s.onreadystatechange = s.onload = function() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.log(\"Bokeh: all BokehJS libraries loaded\");\n", " run_callbacks()\n", " }\n", " };\n", " s.onerror = function() {\n", " console.warn(\"failed to load library \" + url);\n", " };\n", " console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.getElementsByTagName(\"head\")[0].appendChild(s);\n", " }\n", " };\n", "\n", " var js_urls = [];\n", "\n", " var inline_js = [\n", " function(Bokeh) {\n", " /* BEGIN bokeh.min.js */\n", " !function(t,e){t.Bokeh=function(t,e,i){var n={},r=function(i){var o=null!=e[i]?e[i]:i;if(!n[o]){if(!t[o]){var s=new Error(\"Cannot find module '\"+i+\"'\");throw s.code=\"MODULE_NOT_FOUND\",s}var a=n[o]={exports:{}};t[o].call(a.exports,r,a,a.exports)}return n[o].exports},o=r(50);return o.require=r,o.register_plugin=function(i,n,s){for(var a in i)t[a]=i[a];for(var a in n)e[a]=n[a];var l=r(s);for(var a in l)o[a]=l[a];return l},o}([function(t,e,i){var n=t(136),r=t(31);i.overrides={};var o=r.clone(n);i.Models=function(t){var e=i.overrides[t]||o[t];if(null==e)throw new Error(\"Model '\"+t+\"' does not exist. This could be due to a widget\\n or a custom model not being registered before first usage.\");return e},i.Models.register=function(t,e){i.overrides[t]=e},i.Models.unregister=function(t){delete i.overrides[t]},i.Models.register_models=function(t,e,i){if(void 0===e&&(e=!1),null!=t)for(var n in t){var r=t[n];e||!o.hasOwnProperty(n)?o[n]=r:null!=i?i(n):console.warn(\"Model '\"+n+\"' was already registered\")}},i.register_models=i.Models.register_models,i.Models.registered_names=function(){return Object.keys(o)},i.index={}},function(t,e,i){var n=t(307),r=t(14),o=t(48),s=t(250),a=t(251),l=t(2);i.DEFAULT_SERVER_WEBSOCKET_URL=\"ws://localhost:5006/ws\",i.DEFAULT_SESSION_ID=\"default\";var h=0,u=function(){function t(t,e,n,o,s){void 0===t&&(t=i.DEFAULT_SERVER_WEBSOCKET_URL),void 0===e&&(e=i.DEFAULT_SESSION_ID),void 0===n&&(n=null),void 0===o&&(o=null),void 0===s&&(s=null),this.url=t,this.id=e,this.args_string=n,this._on_have_session_hook=o,this._on_closed_permanently_hook=s,this._number=h++,this.socket=null,this.session=null,this.closed_permanently=!1,this._current_handler=null,this._pending_ack=null,this._pending_replies={},this._receiver=new a.Receiver,r.logger.debug(\"Creating websocket \"+this._number+\" to '\"+this.url+\"' session '\"+this.id+\"'\")}return t.prototype.connect=function(){var t=this;if(this.closed_permanently)return n.Promise.reject(new Error(\"Cannot connect() a closed ClientConnection\"));if(null!=this.socket)return n.Promise.reject(new Error(\"Already connected\"));this._pending_replies={},this._current_handler=null;try{var e=this.url+\"?bokeh-protocol-version=1.0&bokeh-session-id=\"+this.id;return null!=this.args_string&&this.args_string.length>0&&(e+=\"&\"+this.args_string),this.socket=new WebSocket(e),new n.Promise(function(e,i){t.socket.binaryType=\"arraybuffer\",t.socket.onopen=function(){return t._on_open(e,i)},t.socket.onmessage=function(e){return t._on_message(e)},t.socket.onclose=function(e){return t._on_close(e)},t.socket.onerror=function(){return t._on_error(i)}})}catch(t){return r.logger.error(\"websocket creation failed to url: \"+this.url),r.logger.error(\" - \"+t),n.Promise.reject(t)}},t.prototype.close=function(){this.closed_permanently||(r.logger.debug(\"Permanently closing websocket connection \"+this._number),this.closed_permanently=!0,null!=this.socket&&this.socket.close(1e3,\"close method called on ClientConnection \"+this._number),this.session._connection_closed(),null!=this._on_closed_permanently_hook&&(this._on_closed_permanently_hook(),this._on_closed_permanently_hook=null))},t.prototype._schedule_reconnect=function(t){var e=this;setTimeout(function(){e.closed_permanently||r.logger.info(\"Websocket connection \"+e._number+\" disconnected, will not attempt to reconnect\");return},t)},t.prototype.send=function(t){if(null==this.socket)throw new Error(\"not connected so cannot send \"+t);t.send(this.socket)},t.prototype.send_with_reply=function(t){var e=this,i=new n.Promise(function(i,n){e._pending_replies[t.msgid()]=[i,n],e.send(t)});return i.then(function(t){if(\"ERROR\"===t.msgtype())throw new Error(\"Error reply \"+t.content.text);return t},function(t){throw t})},t.prototype._pull_doc_json=function(){var t=s.Message.create(\"PULL-DOC-REQ\",{}),e=this.send_with_reply(t);return e.then(function(t){if(!(\"doc\"in t.content))throw new Error(\"No 'doc' field in PULL-DOC-REPLY\");return t.content.doc},function(t){throw t})},t.prototype._repull_session_doc=function(){var t=this;null==this.session?r.logger.debug(\"Pulling session for first time\"):r.logger.debug(\"Repulling session\"),this._pull_doc_json().then(function(e){if(null==t.session)if(t.closed_permanently)r.logger.debug(\"Got new document after connection was already closed\");else{var i=o.Document.from_json(e),n=o.Document._compute_patch_since_json(e,i);if(n.events.length>0){r.logger.debug(\"Sending \"+n.events.length+\" changes from model construction back to server\");var a=s.Message.create(\"PATCH-DOC\",{},n);t.send(a)}t.session=new l.ClientSession(t,i,t.id),r.logger.debug(\"Created a new session from new pulled doc\"),null!=t._on_have_session_hook&&(t._on_have_session_hook(t.session),t._on_have_session_hook=null)}else t.session.document.replace_with_json(e),r.logger.debug(\"Updated existing session with new pulled doc\")},function(t){throw t}).catch(function(t){null!=console.trace&&console.trace(t),r.logger.error(\"Failed to repull session \"+t)})},t.prototype._on_open=function(t,e){var i=this;r.logger.info(\"Websocket connection \"+this._number+\" is now open\"),this._pending_ack=[t,e],this._current_handler=function(t){i._awaiting_ack_handler(t)}},t.prototype._on_message=function(t){null==this._current_handler&&r.logger.error(\"Got a message with no current handler set\");try{this._receiver.consume(t.data)}catch(t){this._close_bad_protocol(t.toString())}if(null!=this._receiver.message){var e=this._receiver.message,i=e.problem();null!=i&&this._close_bad_protocol(i),this._current_handler(e)}},t.prototype._on_close=function(t){var e=this;r.logger.info(\"Lost websocket \"+this._number+\" connection, \"+t.code+\" (\"+t.reason+\")\"),this.socket=null,null!=this._pending_ack&&(this._pending_ack[1](new Error(\"Lost websocket connection, \"+t.code+\" (\"+t.reason+\")\")),this._pending_ack=null);for(var i=function(){for(var t in e._pending_replies){var i=e._pending_replies[t];return delete e._pending_replies[t],i}return null},n=i();null!=n;)n[1](\"Disconnected\"),n=i();this.closed_permanently||this._schedule_reconnect(2e3)},t.prototype._on_error=function(t){r.logger.debug(\"Websocket error on socket \"+this._number),t(new Error(\"Could not open websocket\"))},t.prototype._close_bad_protocol=function(t){r.logger.error(\"Closing connection: \"+t),null!=this.socket&&this.socket.close(1002,t)},t.prototype._awaiting_ack_handler=function(t){var e=this;\"ACK\"===t.msgtype()?(this._current_handler=function(t){return e._steady_state_handler(t)},this._repull_session_doc(),null!=this._pending_ack&&(this._pending_ack[0](this),this._pending_ack=null)):this._close_bad_protocol(\"First message was not an ACK\")},t.prototype._steady_state_handler=function(t){if(t.reqid()in this._pending_replies){var e=this._pending_replies[t.reqid()];delete this._pending_replies[t.reqid()],e[0](t)}else this.session.handle(t)},t}();i.ClientConnection=u,i.pull_session=function(t,e,i){return new n.Promise(function(n,o){return new u(t,e,i,function(t){try{n(t)}catch(e){throw r.logger.error(\"Promise handler threw an error, closing session \"+e),t.close(),e}},function(){o(new Error(\"Connection was closed before we successfully pulled a session\"))}).connect().then(function(t){},function(t){throw r.logger.error(\"Failed to connect to Bokeh server \"+t),t})})}},function(t,e,i){var n=t(14),r=t(48),o=t(250),s=function(){function t(t,e,i){var n=this;this._connection=t,this.document=e,this.id=i,this._document_listener=function(t){return n._document_changed(t)},this.document.on_change(this._document_listener),this.event_manager=this.document.event_manager,this.event_manager.session=this}return t.prototype.handle=function(t){var e=t.msgtype();\"PATCH-DOC\"===e?this._handle_patch(t):\"OK\"===e?this._handle_ok(t):\"ERROR\"===e?this._handle_error(t):n.logger.debug(\"Doing nothing with message \"+t.msgtype())},t.prototype.close=function(){this._connection.close()},t.prototype.send_event=function(t){var e=o.Message.create(\"EVENT\",{},JSON.stringify(t));this._connection.send(e)},t.prototype._connection_closed=function(){this.document.remove_on_change(this._document_listener)},t.prototype.request_server_info=function(){var t=o.Message.create(\"SERVER-INFO-REQ\",{}),e=this._connection.send_with_reply(t);return e.then(function(t){return t.content})},t.prototype.force_roundtrip=function(){return this.request_server_info().then(function(t){})},t.prototype._document_changed=function(t){if(t.setter_id!==this.id&&(!(t instanceof r.ModelChangedEvent)||t.attr in t.model.serializable_attributes())){var e=o.Message.create(\"PATCH-DOC\",{},this.document.create_json_patch([t]));this._connection.send(e)}},t.prototype._handle_patch=function(t){this.document.apply_json_patch(t.content,t.buffers,this.id)},t.prototype._handle_ok=function(t){n.logger.trace(\"Unhandled OK reply to \"+t.reqid())},t.prototype._handle_error=function(t){n.logger.error(\"Unhandled ERROR reply to \"+t.reqid()+\": \"+t.content.text)},t}();i.ClientSession=s},function(t,e,i){function n(t){return function(e){e.prototype.event_name=t,a[t]=e}}var r=t(369),o=t(14),s=t(31),a={};i.register_event_class=n,i.register_with_event=function(t){for(var e=[],i=1;i0&&(this._pending=!0);for(var h=0;h1?r(t.x,t.y,i.x,i.y):r(t.x,t.y,e.x+o*(i.x-e.x),e.y+o*(i.y-e.y))}var s=t(22),a=t(31);i.point_in_poly=function(t,e,i,n){for(var r=!1,o=i[i.length-1],s=n[n.length-1],a=0;an&&(s=[n,i],i=s[0],n=s[1]);r>o&&(a=[o,r],r=a[0],o=a[1]);return{minX:i,minY:r,maxX:n,maxY:o};var s,a},i.dist_2_pts=r,i.dist_to_segment_squared=o,i.dist_to_segment=function(t,e,i){return Math.sqrt(o(t,e,i))},i.check_2_segments_intersect=function(t,e,i,n,r,o,s,a){var l=(a-o)*(i-t)-(s-r)*(n-e);if(0==l)return{hit:!1,x:null,y:null};var h=e-o,u=t-r,c=(s-r)*h-(a-o)*u,_=(i-t)*h-(n-e)*u;u=_/l;var p=t+(h=c/l)*(i-t),d=e+h*(n-e);return{hit:h>0&&h<1&&u>0&&u<1,x:p,y:d}}},function(t,e,i){var n=t(13),r=t(22);i.vstack=function(t,e){var i=[];if(e.length>0){i.push(n.EQ(r.head(e)._bottom,[-1,t._bottom])),i.push(n.EQ(r.tail(e)._top,[-1,t._top])),i.push.apply(i,r.pairwise(e,function(t,e){return n.EQ(t._top,[-1,e._bottom])}));for(var o=0,s=e;o0){i.push(n.EQ(r.head(e)._right,[-1,t._right])),i.push(n.EQ(r.tail(e)._left,[-1,t._left])),i.push.apply(i,r.pairwise(e,function(t,e){return n.EQ(t._left,[-1,e._right])}));for(var o=0,s=e;o0){var n=r[e];return null==n&&(r[e]=n=new t(e,i)),n}throw new TypeError(\"Logger.get() expects a non-empty string name and an optional log-level\")},Object.defineProperty(t.prototype,\"level\",{get:function(){return this.get_level()},enumerable:!0,configurable:!0}),t.prototype.get_level=function(){return this._log_level},t.prototype.set_level=function(e){if(e instanceof o)this._log_level=e;else{if(!n.isString(e)||null==t.log_levels[e])throw new Error(\"Logger.set_level() expects a log-level object or a string name of a log-level\");this._log_level=t.log_levels[e]}var i=\"[\"+this._name+\"]\";for(var r in t.log_levels){var s=t.log_levels[r];s.level0)&&\"pinch\"===r?(o.logger.debug(\"Registering scroll on touch screen\"),l.connect(this.scroll,function(t){if(t.id===s)return l._scroll(t.e)})):void 0}else o.logger.debug(\"Button tool: \"+a)}else for(var h=0;h=0;n--){var r=i[n];if(l.includes([\"annotation\",\"overlay\"],r.model.level)&&null!=r.bbox&&r.bbox().contains(t,e))return r}return null},t.prototype._hit_test_frame=function(t,e){return this.plot_view.frame.bbox.contains(t,e)},t.prototype._trigger=function(t,e){var i=this,n=t.name,r=n.split(\":\")[0],o=this._hit_test_renderers(e.bokeh.sx,e.bokeh.sy);switch(r){case\"move\":var s=this.toolbar.gestures[r].active;null!=s&&this.trigger(t,e,s.id);var a=this.toolbar.inspectors.filter(function(t){return t.active}),l=\"default\";null!=o?(null!=o.model.cursor&&(l=o.model.cursor()),h.isEmpty(a)||(t=this.move_exit,n=t.name)):this._hit_test_frame(e.bokeh.sx,e.bokeh.sy)&&(h.isEmpty(a)||(l=\"crosshair\")),this.plot_view.set_cursor(l),a.map(function(n){return i.trigger(t,e,n.id)});break;case\"tap\":null!=o&&\"function\"==typeof o.on_hit&&o.on_hit(e.bokeh.sx,e.bokeh.sy);var s=this.toolbar.gestures[r].active;null!=s&&this.trigger(t,e,s.id);break;case\"scroll\":var u=\"ontouchstart\"in window||navigator.maxTouchPoints>0?\"pinch\":\"scroll\",s=this.toolbar.gestures[u].active;null!=s&&(e.preventDefault(),e.stopPropagation(),this.trigger(t,e,s.id));break;default:var s=this.toolbar.gestures[r].active;null!=s&&this.trigger(t,e,s.id)}},t.prototype.trigger=function(t,e,i){return void 0===i&&(i=null),t.emit({id:i,e:e})},t.prototype._event_sxy=function(t){var e=s.offset(this.hit_area),i=e.left,n=e.top;return{sx:t.pageX-i,sy:t.pageY-n}},t.prototype._bokify_hammer=function(t,e){void 0===e&&(e={}),t.bokeh=h.extend(this._event_sxy(t.srcEvent),e);var i=u.BokehEvent.event_class(t);return null!=i?this.plot.trigger_event(i.from_event(t)):o.logger.debug(\"Unhandled event of type \"+t.type)},t.prototype._bokify_point_event=function(t,e){void 0===e&&(e={}),t.bokeh=h.extend(this._event_sxy(t),e);var i=u.BokehEvent.event_class(t);return null!=i?this.plot.trigger_event(i.from_event(t)):o.logger.debug(\"Unhandled event of type \"+t.type)},t.prototype._tap=function(t){return this._bokify_hammer(t),this._trigger(this.tap,t)},t.prototype._doubletap=function(t){return this._bokify_hammer(t),this.trigger(this.doubletap,t)},t.prototype._press=function(t){return this._bokify_hammer(t),this._trigger(this.press,t)},t.prototype._pan_start=function(t){return this._bokify_hammer(t),t.bokeh.sx-=t.deltaX,t.bokeh.sy-=t.deltaY,this._trigger(this.pan_start,t)},t.prototype._pan=function(t){return this._bokify_hammer(t),this._trigger(this.pan,t)},t.prototype._pan_end=function(t){return this._bokify_hammer(t),this._trigger(this.pan_end,t)},t.prototype._pinch_start=function(t){return this._bokify_hammer(t),this._trigger(this.pinch_start,t)},t.prototype._pinch=function(t){return this._bokify_hammer(t),this._trigger(this.pinch,t)},t.prototype._pinch_end=function(t){return this._bokify_hammer(t),this._trigger(this.pinch_end,t)},t.prototype._rotate_start=function(t){return this._bokify_hammer(t),this._trigger(this.rotate_start,t)},t.prototype._rotate=function(t){return this._bokify_hammer(t),this._trigger(this.rotate,t)},t.prototype._rotate_end=function(t){return this._bokify_hammer(t),this._trigger(this.rotate_end,t)},t.prototype._mouse_enter=function(t){return this._bokify_point_event(t),this._trigger(this.move_enter,t)},t.prototype._mouse_move=function(t){return this._bokify_point_event(t),this._trigger(this.move,t)},t.prototype._mouse_exit=function(t){return this._bokify_point_event(t),this._trigger(this.move_exit,t)},t.prototype._mouse_wheel=function(t){return this._bokify_point_event(t,{delta:a.getDeltaY(t)}),this._trigger(this.scroll,t)},t.prototype._key_down=function(t){return this.trigger(this.keydown,t)},t.prototype._key_up=function(t){return this.trigger(this.keyup,t)},t}();i.UIEvents=c},function(t,e,i){function n(t){return(e=[]).concat.apply(e,t);var e}function r(t,e){return-1!==t.indexOf(e)}function o(t,e,i){void 0===i&&(i=1),c.assert(i>0,\"'step' must be a positive number\"),null==e&&(e=t,t=0);for(var n=Math.max,r=Math.ceil,o=Math.abs,s=t<=e?i:-i,a=n(r(o(e-t)/i),0),l=Array(a),h=0;hn&&(i=s,n=a)}return i}function l(t){return function(e,i){for(var n=e.length,r=t>0?0:n-1;r>=0&&r=0?e:t.length+e]},i.zip=function(t,e){for(var i=Math.min(t.length,e.length),n=new Array(i),r=0;ri&&(i=e);return i},i.maxBy=a,i.argmin=function(t){return s(o(t.length),function(e){return t[e]})},i.argmax=function(t){return a(o(t.length),function(e){return t[e]})},i.all=function(t,e){for(var i=0,n=t;in||void 0===i)return 1;if(i=0&&u>=0))throw new Error(\"invalid bbox {x: \"+a+\", y: \"+l+\", width: \"+h+\", height: \"+u+\"}\");this.x0=a,this.y0=l,this.x1=a+h,this.y1=l+u}}return Object.defineProperty(t.prototype,\"minX\",{get:function(){return this.x0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"minY\",{get:function(){return this.y0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"maxX\",{get:function(){return this.x1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"maxY\",{get:function(){return this.y1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"left\",{get:function(){return this.x0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"top\",{get:function(){return this.y0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"right\",{get:function(){return this.x1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"bottom\",{get:function(){return this.y1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"p0\",{get:function(){return[this.x0,this.y0]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"p1\",{get:function(){return[this.x1,this.y1]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"x\",{get:function(){return this.x0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"y\",{get:function(){return this.y0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"width\",{get:function(){return this.x1-this.x0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"height\",{get:function(){return this.y1-this.y0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"rect\",{get:function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"h_range\",{get:function(){return{start:this.x0,end:this.x1}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"v_range\",{get:function(){return{start:this.y0,end:this.y1}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"ranges\",{get:function(){return[this.h_range,this.v_range]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"aspect\",{get:function(){return this.width/this.height},enumerable:!0,configurable:!0}),t.prototype.contains=function(t,e){return t>=this.x0&&t<=this.x1&&e>=this.y0&&e<=this.y1},t.prototype.clip=function(t,e){return tthis.x1&&(t=this.x1),ethis.y1&&(e=this.y1),[t,e]},t.prototype.union=function(e){return new t({x0:n(this.x0,e.x0),y0:n(this.y0,e.y0),x1:r(this.x1,e.x1),y1:r(this.y1,e.y1)})},t}();i.BBox=o},function(t,e,i){i.delay=function(t,e){return setTimeout(t,e)};var n=\"function\"==typeof requestAnimationFrame?requestAnimationFrame:setImmediate;i.defer=function(t){return n(t)},i.throttle=function(t,e,i){void 0===i&&(i={});var n,r,o,s=null,a=0,l=function(){a=!1===i.leading?0:Date.now(),s=null,o=t.apply(n,r),s||(n=r=null)};return function(){var h=Date.now();a||!1!==i.leading||(a=h);var u=e-(h-a);return n=this,r=arguments,u<=0||u>e?(s&&(clearTimeout(s),s=null),a=h,o=t.apply(n,r),s||(n=r=null)):s||!1===i.trailing||(s=setTimeout(l,u)),o}},i.once=function(t){var e,i=!1;return function(){return i||(i=!0,e=t()),e}}},function(t,e,i){i.fixup_ctx=function(t){(function(t){t.setLineDash||(t.setLineDash=function(e){t.mozDash=e,t.webkitLineDash=e});t.getLineDash||(t.getLineDash=function(){return t.mozDash})})(t),function(t){t.setLineDashOffset=function(e){t.lineDashOffset=e,t.mozDashOffset=e,t.webkitLineDashOffset=e},t.getLineDashOffset=function(){return t.mozDashOffset}}(t),function(t){t.setImageSmoothingEnabled=function(e){t.imageSmoothingEnabled=e,t.mozImageSmoothingEnabled=e,t.oImageSmoothingEnabled=e,t.webkitImageSmoothingEnabled=e,t.msImageSmoothingEnabled=e},t.getImageSmoothingEnabled=function(){var e=t.imageSmoothingEnabled;return null==e||e}}(t),function(t){t.measureText&&null==t.html5MeasureText&&(t.html5MeasureText=t.measureText,t.measureText=function(e){var i=t.html5MeasureText(e);return i.ascent=1.6*t.html5MeasureText(\"m\").width,i})}(t),function(t){t.ellipse||(t.ellipse=function(e,i,n,r,o,s,a,l){void 0===l&&(l=!1);t.translate(e,i),t.rotate(o);var h=n,u=r;l&&(h=-n,u=-r);t.moveTo(-h,0),t.bezierCurveTo(-h,.551784*u,.551784*-h,u,0,u),t.bezierCurveTo(.551784*h,u,h,.551784*u,h,0),t.bezierCurveTo(h,.551784*-u,.551784*h,-u,0,-u),t.bezierCurveTo(.551784*-h,-u,-h,.551784*-u,-h,0),t.rotate(-o),t.translate(-e,-i)})}(t)},i.get_scale_ratio=function(t,e,i){if(\"svg\"==i)return 1;if(e){var n=window.devicePixelRatio||1,r=t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return n/r}return 1}},function(t,e,i){var n=t(39),r=t(22),o=function(t){var e=Number(t).toString(16);return e=1===e.length?\"0\"+e:e};i.color2hex=function(t){if(0===(t+=\"\").indexOf(\"#\"))return t;if(null!=n[t])return n[t];if(0===t.indexOf(\"rgb\")){var e=t.replace(/^rgba?\\(|\\s+|\\)$/g,\"\").split(\",\"),i=e.slice(0,3).map(function(t){return o(t)}).join(\"\");4===e.length&&(i+=o(Math.floor(255*parseFloat(e.slice(3)))));var r=\"#\"+i.slice(0,8);return r}return t},i.color2rgba=function(t,e){if(void 0===e&&(e=1),!t)return[0,0,0,0];var n=i.color2hex(t);(n=n.replace(/ |#/g,\"\")).length<=4&&(n=n.replace(/(.)/g,\"$1$1\"));for(var r=(n=n.match(/../g)).map(function(t){return parseInt(t,16)/255});r.length<3;)r.push(0);return r.length<4&&r.push(e),r.slice(0,4)},i.valid_rgb=function(t){var e;switch(t.substring(0,4)){case\"rgba\":e={start:\"rgba(\",len:4,alpha:!0};break;case\"rgb(\":e={start:\"rgb(\",len:3,alpha:!1};break;default:return!1}if(new RegExp(\".*?(\\\\.).*(,)\").test(t))throw new Error(\"color expects integers for rgb in rgb/rgba tuple, received \"+t);var i=t.replace(e.start,\"\").replace(\")\",\"\").split(\",\").map(parseFloat);if(i.length!==e.len)throw new Error(\"color expects rgba \"+e.len+\"-tuple, received \"+t);if(e.alpha&&!(0<=i[3]&&i[3]<=1))throw new Error(\"color expects rgba 4-tuple to have alpha value between 0 and 1\");if(r.includes(i.slice(0,3).map(function(t){return 0<=t&&t<=255}),!1))throw new Error(\"color expects rgb to have value between 0 and 255\");return!0}},function(t,e,i){var n=t(22),r=t(29),o=t(43),s=function(){function t(){this._dict={}}return t.prototype._existing=function(t){return t in this._dict?this._dict[t]:null},t.prototype.add_value=function(t,e){var i=this._existing(t);null==i?this._dict[t]=e:o.isArray(i)?i.push(e):this._dict[t]=[i,e]},t.prototype.remove_value=function(t,e){var i=this._existing(t);if(o.isArray(i)){var s=n.difference(i,[e]);s.length>0?this._dict[t]=s:delete this._dict[t]}else r.isEqual(i,e)&&delete this._dict[t]},t.prototype.get_one=function(t,e){var i=this._existing(t);if(o.isArray(i)){if(1===i.length)return i[0];throw new Error(e)}return i},t}();i.MultiDict=s;var a=function(){function t(e){this.values=null==e?[]:e instanceof t?n.copy(e.values):this._compact(e)}return t.prototype._compact=function(t){for(var e=[],i=0,n=t;i2*Math.PI;)t-=2*Math.PI;return t}function r(t,e){return Math.abs(n(t-e))}function o(){return Math.random()}i.angle_norm=n,i.angle_dist=r,i.angle_between=function(t,e,i,o){var s=n(t),a=r(e,i),l=r(e,s)<=a&&r(s,i)<=a;return\"anticlock\"==o?l:!l},i.random=o,i.randomIn=function(t,e){null==e&&(e=t,t=0);return t+Math.floor(Math.random()*(e-t+1))},i.atan2=function(t,e){return Math.atan2(e[1]-t[1],e[0]-t[0])},i.rnorm=function(t,e){var i,n;for(;i=o(),n=o(),n=(2*n-1)*Math.sqrt(1/Math.E*2),!(-4*i*i*Math.log(i)>=n*n););var r=n/i;return r=t+e*r},i.clamp=function(t,e,i){return t>i?i:tl[e][0]&&t0?e[\"1d\"].indices:e[\"2d\"].indices.length>0?e[\"2d\"].indices:[]}},function(t,e,i){var n=t(43),r=t(22);i.ARRAY_TYPES={float32:Float32Array,float64:Float64Array,uint8:Uint8Array,int8:Int8Array,uint16:Uint16Array,int16:Int16Array,uint32:Uint32Array,int32:Int32Array},i.DTYPES=function(){var t={};for(var e in i.ARRAY_TYPES){var n=i.ARRAY_TYPES[e];t[n.name]=e}return t}(),i.BYTE_ORDER=function(){var t=new ArrayBuffer(2),e=new Uint8Array(t),i=new Uint16Array(t);return e[0]=170,e[1]=187,48042===i[0]?\"little\":\"big\"}(),i.swap16=function(t){for(var e=new Uint8Array(t.buffer,t.byteOffset,2*t.length),i=0,n=e.length;i\"'`])/g,function(t){switch(t){case\"&\":return\"&\";case\"<\":return\"<\";case\">\":return\">\";case'\"':return\""\";case\"'\":return\"'\";case\"`\":return\"`\";default:return t}})},i.unescape=function(t){return t.replace(/&(amp|lt|gt|quot|#x27|#x60);/g,function(t,e){switch(e){case\"amp\":return\"&\";case\"lt\":return\"<\";case\"gt\":return\">\";case\"quot\":return'\"';case\"#x27\":return\"'\";case\"#x60\":return\"`\";default:return e}})}},function(t,e,i){i.indianred=\"#CD5C5C\",i.lightcoral=\"#F08080\",i.salmon=\"#FA8072\",i.darksalmon=\"#E9967A\",i.lightsalmon=\"#FFA07A\",i.crimson=\"#DC143C\",i.red=\"#FF0000\",i.firebrick=\"#B22222\",i.darkred=\"#8B0000\",i.pink=\"#FFC0CB\",i.lightpink=\"#FFB6C1\",i.hotpink=\"#FF69B4\",i.deeppink=\"#FF1493\",i.mediumvioletred=\"#C71585\",i.palevioletred=\"#DB7093\",i.coral=\"#FF7F50\",i.tomato=\"#FF6347\",i.orangered=\"#FF4500\",i.darkorange=\"#FF8C00\",i.orange=\"#FFA500\",i.gold=\"#FFD700\",i.yellow=\"#FFFF00\",i.lightyellow=\"#FFFFE0\",i.lemonchiffon=\"#FFFACD\",i.lightgoldenrodyellow=\"#FAFAD2\",i.papayawhip=\"#FFEFD5\",i.moccasin=\"#FFE4B5\",i.peachpuff=\"#FFDAB9\",i.palegoldenrod=\"#EEE8AA\",i.khaki=\"#F0E68C\",i.darkkhaki=\"#BDB76B\",i.lavender=\"#E6E6FA\",i.thistle=\"#D8BFD8\",i.plum=\"#DDA0DD\",i.violet=\"#EE82EE\",i.orchid=\"#DA70D6\",i.fuchsia=\"#FF00FF\",i.magenta=\"#FF00FF\",i.mediumorchid=\"#BA55D3\",i.mediumpurple=\"#9370DB\",i.blueviolet=\"#8A2BE2\",i.darkviolet=\"#9400D3\",i.darkorchid=\"#9932CC\",i.darkmagenta=\"#8B008B\",i.purple=\"#800080\",i.indigo=\"#4B0082\",i.slateblue=\"#6A5ACD\",i.darkslateblue=\"#483D8B\",i.mediumslateblue=\"#7B68EE\",i.greenyellow=\"#ADFF2F\",i.chartreuse=\"#7FFF00\",i.lawngreen=\"#7CFC00\",i.lime=\"#00FF00\",i.limegreen=\"#32CD32\",i.palegreen=\"#98FB98\",i.lightgreen=\"#90EE90\",i.mediumspringgreen=\"#00FA9A\",i.springgreen=\"#00FF7F\",i.mediumseagreen=\"#3CB371\",i.seagreen=\"#2E8B57\",i.forestgreen=\"#228B22\",i.green=\"#008000\",i.darkgreen=\"#006400\",i.yellowgreen=\"#9ACD32\",i.olivedrab=\"#6B8E23\",i.olive=\"#808000\",i.darkolivegreen=\"#556B2F\",i.mediumaquamarine=\"#66CDAA\",i.darkseagreen=\"#8FBC8F\",i.lightseagreen=\"#20B2AA\",i.darkcyan=\"#008B8B\",i.teal=\"#008080\",i.aqua=\"#00FFFF\",i.cyan=\"#00FFFF\",i.lightcyan=\"#E0FFFF\",i.paleturquoise=\"#AFEEEE\",i.aquamarine=\"#7FFFD4\",i.turquoise=\"#40E0D0\",i.mediumturquoise=\"#48D1CC\",i.darkturquoise=\"#00CED1\",i.cadetblue=\"#5F9EA0\",i.steelblue=\"#4682B4\",i.lightsteelblue=\"#B0C4DE\",i.powderblue=\"#B0E0E6\",i.lightblue=\"#ADD8E6\",i.skyblue=\"#87CEEB\",i.lightskyblue=\"#87CEFA\",i.deepskyblue=\"#00BFFF\",i.dodgerblue=\"#1E90FF\",i.cornflowerblue=\"#6495ED\",i.royalblue=\"#4169E1\",i.blue=\"#0000FF\",i.mediumblue=\"#0000CD\",i.darkblue=\"#00008B\",i.navy=\"#000080\",i.midnightblue=\"#191970\",i.cornsilk=\"#FFF8DC\",i.blanchedalmond=\"#FFEBCD\",i.bisque=\"#FFE4C4\",i.navajowhite=\"#FFDEAD\",i.wheat=\"#F5DEB3\",i.burlywood=\"#DEB887\",i.tan=\"#D2B48C\",i.rosybrown=\"#BC8F8F\",i.sandybrown=\"#F4A460\",i.goldenrod=\"#DAA520\",i.darkgoldenrod=\"#B8860B\",i.peru=\"#CD853F\",i.chocolate=\"#D2691E\",i.saddlebrown=\"#8B4513\",i.sienna=\"#A0522D\",i.brown=\"#A52A2A\",i.maroon=\"#800000\",i.white=\"#FFFFFF\",i.snow=\"#FFFAFA\",i.honeydew=\"#F0FFF0\",i.mintcream=\"#F5FFFA\",i.azure=\"#F0FFFF\",i.aliceblue=\"#F0F8FF\",i.ghostwhite=\"#F8F8FF\",i.whitesmoke=\"#F5F5F5\",i.seashell=\"#FFF5EE\",i.beige=\"#F5F5DC\",i.oldlace=\"#FDF5E6\",i.floralwhite=\"#FFFAF0\",i.ivory=\"#FFFFF0\",i.antiquewhite=\"#FAEBD7\",i.linen=\"#FAF0E6\",i.lavenderblush=\"#FFF0F5\",i.mistyrose=\"#FFE4E1\",i.gainsboro=\"#DCDCDC\",i.lightgray=\"#D3D3D3\",i.lightgrey=\"#D3D3D3\",i.silver=\"#C0C0C0\",i.darkgray=\"#A9A9A9\",i.darkgrey=\"#A9A9A9\",i.gray=\"#808080\",i.grey=\"#808080\",i.dimgray=\"#696969\",i.dimgrey=\"#696969\",i.lightslategray=\"#778899\",i.lightslategrey=\"#778899\",i.slategray=\"#708090\",i.slategrey=\"#708090\",i.darkslategray=\"#2F4F4F\",i.darkslategrey=\"#2F4F4F\",i.black=\"#000000\"},function(t,e,i){var n=t(367),r=t(337),o=t(368),s=t(38),a=t(43);i.replace_placeholders=function(t,e,i,l,h){return void 0===l&&(l=null),void 0===h&&(h={}),t=t.replace(/(^|[^\\$])\\$(\\w+)/g,function(t,e,i){return e+\"@$\"+i}),t=t.replace(/(^|[^@])@(?:(\\$?\\w+)|{([^{}]+)})(?:{([^{}]+)})?/g,function(t,u,c,_,p){var d=\"$\"===(c=null!=_?_:c)[0]?h[c.substring(1)]:function(t,e){return void 0!==t&&null!==t?e(t):void 0}(e.get_column(c),function(t){return t[i]}),f=null;if(null==d)f=\"???\";else{if(\"safe\"===p)return\"\"+u+d;if(null!=p)if(null!=l&&c in l)if(\"numeral\"===l[c])f=r.format(d,p);else if(\"datetime\"===l[c])f=o(d,p);else{if(\"printf\"!==l[c])throw new Error(\"Unknown tooltip field formatter type '\"+l[c]+\"'\");f=n.sprintf(p,d)}else f=r.format(d,p);else f=function(t){if(a.isNumber(t)){var e=function(){switch(!1){case Math.floor(t)!==t:return\"%d\";case!(Math.abs(t)>.1&&Math.abs(t)<1e3):return\"%0.3f\";default:return\"%0.3e\"}}();return n.sprintf(e,t)}return\"\"+t}(d)}return f=\"\"+u+s.escape(f)})}},function(t,e,i){var n=t(5),r={};i.get_text_height=function(t){if(null!=r[t])return r[t];var e=n.span({style:{font:t}},\"Hg\"),i=n.div({style:{display:\"inline-block\",width:\"1px\",height:\"0px\"}}),o=n.div({},e,i);document.body.appendChild(o);try{i.style.verticalAlign=\"baseline\";var s=n.offset(i).top-n.offset(e).top;i.style.verticalAlign=\"bottom\";var a=n.offset(i).top-n.offset(e).top,l={height:a,ascent:s,descent:a-s};return r[t]=l,l}finally{document.body.removeChild(o)}}},function(t,e,i){var n=(\"undefined\"!=typeof window&&null!==window?window.requestAnimationFrame:void 0)||(\"undefined\"!=typeof window&&null!==window?window.mozRequestAnimationFrame:void 0)||(\"undefined\"!=typeof window&&null!==window?window.webkitRequestAnimationFrame:void 0)||(\"undefined\"!=typeof window&&null!==window?window.msRequestAnimationFrame:void 0)||function(t){return t()};i.throttle=function(t,e){var i=[null,null,null,null],r=i[0],o=i[1],s=i[2],a=i[3],l=0,h=!1,u=function(){return l=Date.now(),s=null,h=!1,a=t.apply(r,o)};return function(){var t=Date.now(),i=e-(t-l);return r=this,o=arguments,i<=0&&!h?(clearTimeout(s),h=!0,n(u)):s||h||(s=setTimeout(function(){return n(u)},i)),a}}},function(t,e,i){function n(t){return\"[object Number]\"===r.call(t)}var r=Object.prototype.toString;i.isBoolean=function(t){return!0===t||!1===t||\"[object Boolean]\"===r.call(t)},i.isNumber=n,i.isInteger=function(t){return n(t)&&isFinite(t)&&Math.floor(t)===t},i.isString=function(t){return\"[object String]\"===r.call(t)},i.isStrictNaN=function(t){return n(t)&&t!==+t},i.isFunction=function(t){return\"[object Function]\"===r.call(t)},i.isArray=function(t){return Array.isArray(t)},i.isObject=function(t){var e=typeof t;return\"function\"===e||\"object\"===e&&!!t}},function(t,e,i){function n(t){var e=getComputedStyle(t).fontSize;return null!=e?parseInt(e,10):null}i.getDeltaY=function(t){var e=-t.deltaY;if(t.target instanceof HTMLElement)switch(t.deltaMode){case t.DOM_DELTA_LINE:e*=function(t){return n(t.offsetParent||document.body)||n(t)||16}(t.target);break;case t.DOM_DELTA_PAGE:e*=function(t){return t.clientHeight}(t.target)}return e}},function(t,e,i){function n(t,e,i){var n=[t.start,t.end],r=n[0],o=n[1],s=null!=i?i:(o+r)/2,a=r-(r-s)*e,l=o-(o-s)*e;return[a,l]}function r(t,e){var i=e[0],n=e[1],r={};for(var o in t){var s=t[o],a=s.r_invert(i,n),l=a[0],h=a[1];r[o]={start:l,end:h}}return r}var o=t(30);i.scale_highlow=n,i.get_info=r,i.scale_range=function(t,e,i,s,a){void 0===i&&(i=!0);void 0===s&&(s=!0);e=o.clamp(e,-.9,.9);var l=i?e:0,h=n(t.bbox.h_range,l,null!=a?a.x:void 0),u=h[0],c=h[1],_=r(t.xscales,[u,c]),p=s?e:0,d=n(t.bbox.v_range,p,null!=a?a.y:void 0),f=d[0],v=d[1],m=r(t.yscales,[f,v]);return{xrs:_,yrs:m,factor:e}}},function(t,e,i){var n=t(369),r=t(20),o=t(38),s=function(t){function e(e){var i=t.call(this)||this;if(i.removed=new r.Signal(i,\"removed\"),null==e.model)throw new Error(\"model of a view wasn't configured\");return i.model=e.model,i._parent=e.parent,i.id=e.id||o.uniqueId(),i.initialize(e),!1!==e.connect_signals&&i.connect_signals(),i}return n.__extends(e,t),e.prototype.initialize=function(t){},e.prototype.remove=function(){this._parent=void 0,this.disconnect_signals(),this.removed.emit(void 0)},e.prototype.toString=function(){return this.model.type+\"View(\"+this.id+\")\"},Object.defineProperty(e.prototype,\"parent\",{get:function(){if(void 0!==this._parent)return this._parent;throw new Error(\"parent of a view wasn't configured\")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"is_root\",{get:function(){return null===this.parent},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"root\",{get:function(){return this.is_root?this:this.parent.root},enumerable:!0,configurable:!0}),e.prototype.connect_signals=function(){},e.prototype.disconnect_signals=function(){r.Signal.disconnectReceiver(this)},e.prototype.notify_finished=function(){this.root.notify_finished()},e}(r.Signalable());i.View=s},function(t,e,i){var n=t(369),r=t(16),o=t(27),s=function(){function t(t,e){void 0===e&&(e=\"\"),this.obj=t,this.prefix=e,this.cache={};var i=t.properties[e+this.do_attr].spec;this.doit=null!==i.value;for(var n=0,r=this.attrs;n0;)this.remove_root(this._roots[0])}finally{this._pop_all_models_freeze()}},t.prototype.interactive_start=function(t){null==this._interactive_plot&&(this._interactive_plot=t,this._interactive_plot.trigger_event(new a.LODStart({}))),this._interactive_timestamp=Date.now()},t.prototype.interactive_stop=function(t){null!=this._interactive_plot&&this._interactive_plot.id===t.id&&this._interactive_plot.trigger_event(new a.LODEnd({})),this._interactive_plot=null,this._interactive_timestamp=null},t.prototype.interactive_duration=function(){return null==this._interactive_timestamp?-1:Date.now()-this._interactive_timestamp},t.prototype.destructively_move=function(t){if(t===this)throw new Error(\"Attempted to overwrite a document with itself\");t.clear();var e=p.copy(this._roots);this.clear();for(var i=0,n=e;i=0&&this._callbacks.splice(e,1)},t.prototype._trigger_on_change=function(t){for(var e=0,i=this._callbacks;e0||p.difference(f,a).length>0)throw new Error(\"Not implemented: computing add/remove of document roots\");var g={},y=[];for(var b in i._all_models)if(b in o){var x=t._events_to_sync_objects(o[b],c[b],i,g);y=y.concat(x)}return{references:t._references_json(d.values(g),!1),events:y}},t.prototype.to_json_string=function(t){return void 0===t&&(t=!0),JSON.stringify(this.to_json(t))},t.prototype.to_json=function(e){void 0===e&&(e=!0);var i=this._roots.map(function(t){return t.id}),n=d.values(this._all_models);return{title:this._title,roots:{root_ids:i,references:t._references_json(n,e)}}},t.from_json_string=function(e){var i=JSON.parse(e);return t.from_json(i)},t.from_json=function(e){s.logger.debug(\"Creating Document from JSON\");var i=e.version,n=-1!==i.indexOf(\"+\")||-1!==i.indexOf(\"-\"),r=\"Library versions: JS (\"+o.version+\") / Python (\"+i+\")\";n||o.version===i?s.logger.debug(r):(s.logger.warn(\"JS/Python version mismatch\"),s.logger.warn(r));var a=e.roots,l=a.root_ids,h=a.references,u=t._instantiate_references_json(h,{});t._initialize_references_json(h,{},u);for(var c=new t,_=0,p=l;_0?t.consume(e.buffers[0].buffer):t.consume(e.content.data);var i=t.message;null!=i&&this.apply_json_patch(i.content,i.buffers)}function r(t,e){if(\"undefined\"!=typeof Jupyter&&null!=Jupyter.notebook.kernel){d.logger.info(\"Registering Jupyter comms for target \"+t);var i=Jupyter.notebook.kernel.comm_manager,r=function(i){return function(t,e,i){if(t==i.target_name){var r=new x.Receiver;i.on_msg(n.bind(e,r))}}(t,e,i)};for(var o in i.comms){var s=i.comms[o];s.then(r)}try{i.register_target(t,function(i){d.logger.info(\"Registering Jupyter comms for target \"+t);var r=new x.Receiver;i.on_msg(n.bind(e,r))})}catch(t){d.logger.warn(\"Jupyter comms failed to register. push_notebook() will not function. (exception reported: \"+t+\")\")}}else console.warn(\"Jupyter notebooks comms not available. push_notebook() will not function\")}function o(t){var e=new t.default_view({model:t,parent:null});return p.index[t.id]=e,e}function s(t){var e=t.elementid,n=document.getElementById(e);if(null==n)throw new Error(\"Error rendering Bokeh model: could not find tag with id: \"+e);if(!document.body.contains(n))throw new Error(\"Error rendering Bokeh model: element with id '\"+e+\"' must be under \");if(\"SCRIPT\"==n.tagName){!function(t,e){var i=t.dataset,n=i.bokehLogLevel,r=i.bokehDocId,o=i.bokehModelId,s=i.bokehSessionId;null!=n&&n.length>0&&d.set_log_level(n);null!=r&&r.length>0&&(e.docid=r);null!=o&&o.length>0&&(e.modelid=o);null!=s&&s.length>0&&(e.sessionid=s);d.logger.info(\"Will inject Bokeh script tag with params \"+JSON.stringify(e))}(n,t);var r=v.div({class:i.BOKEH_ROOT});v.replaceWith(n,r);var o=v.div();r.appendChild(o),n=o}return n}function a(t,e,i){var n=i.get_model_by_id(t);if(null==n)throw new Error(\"Model \"+t+\" was not in document \"+i);var r=o(n);return r.renderTo(e,!0),r}function l(t,e,i){function n(t){var i=o(t);i.renderTo(e),r[t.id]=i}void 0===i&&(i=!1);for(var r={},s=0,a=t.roots();s=0;e--)t.lineTo(this._upper_sx[e],this._upper_sy[e]);t.closePath(),this.visuals.fill.doit&&(this.visuals.fill.set_value(t),t.fill()),t.beginPath(),t.moveTo(this._lower_sx[0],this._lower_sy[0]);for(var e=0,i=this._lower_sx.length;eh||(d[o].push(_[v]),d[s].push(0));for(var v=0,m=p.length;vh||(f[o].push(p[v]),f[s].push(0));var g={major:this._format_major_labels(d[o].slice(0),_)};return d[o]=n.v_compute(d[o]),f[o]=n.v_compute(f[o]),\"vertical\"===this.orientation&&(d[o]=new Float64Array(function(){for(var i=[],n=0,r=d[o];n0?(this.el.style.top=r+\"px\",this.el.style.left=t+\"px\"):o.hide(this.el)}},e}(r.AnnotationView);i.TooltipView=a;var l=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"Tooltip\",this.prototype.default_view=a,this.define({attachment:[s.String,\"horizontal\"],inner_only:[s.Bool,!0],show_arrow:[s.Bool,!0]}),this.override({level:\"overlay\"}),this.internal({data:[s.Any,[]],custom:[s.Any]})},e.prototype.clear=function(){this.data=[]},e.prototype.add=function(t,e,i){var n=this.data;n.push([t,e,i]),this.data=n,this.properties.data.change.emit(void 0)},e}(r.Annotation);i.Tooltip=l,l.initClass()},function(t,e,i){var n=t(369),r=t(52),o=t(174),s=t(54),a=t(15),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype.initialize=function(e){t.prototype.initialize.call(this,e),this.set_data(this.model.source)},e.prototype.connect_signals=function(){var e=this;t.prototype.connect_signals.call(this),this.connect(this.model.source.streaming,function(){return e.set_data(e.model.source)}),this.connect(this.model.source.patching,function(){return e.set_data(e.model.source)}),this.connect(this.model.source.change,function(){return e.set_data(e.model.source)})},e.prototype.set_data=function(e){return t.prototype.set_data.call(this,e),this.visuals.warm_cache(e),this.plot_view.request_render()},e.prototype._map_data=function(){var t,e,i,n=this.plot_model.frame,r=this.model.dimension,o=n.xscales[this.model.x_range_name],s=n.yscales[this.model.y_range_name],a=\"height\"===r?s:o,l=\"height\"===r?o:s,h=\"height\"===r?n.yview:n.xview,u=\"height\"===r?n.xview:n.yview;e=\"data\"===this.model.lower.units?a.v_compute(this._lower):h.v_compute(this._lower),i=\"data\"===this.model.upper.units?a.v_compute(this._upper):h.v_compute(this._upper),t=\"data\"===this.model.base.units?l.v_compute(this._base):u.v_compute(this._base);var c=\"height\"===r?[1,0]:[0,1],_=c[0],p=c[1],d=[e,t],f=[i,t];return this._lower_sx=d[_],this._lower_sy=d[p],this._upper_sx=f[_],this._upper_sy=f[p]},e.prototype.render=function(){if(this.model.visible){this._map_data();var t=this.plot_view.canvas_view.ctx;if(this.visuals.line.doit)for(var e=0,i=this._lower_sx.length;ec&&(c=f)}return c>0&&(c+=n),c},e}(r.GuideRendererView);i.AxisView=_;var p=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"Axis\",this.prototype.default_view=_,this.mixins([\"line:axis_\",\"line:major_tick_\",\"line:minor_tick_\",\"text:major_label_\",\"text:axis_label_\"]),this.define({bounds:[o.Any,\"auto\"],ticker:[o.Instance,null],formatter:[o.Instance,null],x_range_name:[o.String,\"default\"],y_range_name:[o.String,\"default\"],axis_label:[o.String,\"\"],axis_label_standoff:[o.Int,5],major_label_standoff:[o.Int,5],major_label_orientation:[o.Any,\"horizontal\"],major_label_overrides:[o.Any,{}],major_tick_in:[o.Number,2],major_tick_out:[o.Number,6],minor_tick_in:[o.Number,0],minor_tick_out:[o.Number,4]}),this.override({axis_line_color:\"black\",major_tick_line_color:\"black\",minor_tick_line_color:\"black\",major_label_text_font_size:\"8pt\",major_label_text_align:\"center\",major_label_text_baseline:\"alphabetic\",axis_label_text_font_size:\"10pt\",axis_label_text_font_style:\"italic\"})},e.prototype.add_panel=function(t){this.panel=new s.SidePanel({side:t}),this.panel.attach_document(this.document)},Object.defineProperty(e.prototype,\"normals\",{get:function(){return this.panel.normals},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"dimension\",{get:function(){return this.panel.dimension},enumerable:!0,configurable:!0}),e.prototype.compute_labels=function(t){for(var e=this.formatter.doFormat(t,this),i=0;ih(a-_)?(n=c(u(o,s),a),r=u(c(o,s),_)):(n=u(o,s),r=c(o,s)),[n,r]}throw new Error(\"user bounds '\"+e+\"' not understood\")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"rule_coords\",{get:function(){var t=this.dimension,e=(t+1)%2,i=this.ranges[0],n=this.computed_bounds,r=n[0],o=n[1],s=new Array(2),a=new Array(2),l=[s,a];return l[t][0]=Math.max(r,i.min),l[t][1]=Math.min(o,i.max),l[t][0]>l[t][1]&&(l[t][0]=l[t][1]=NaN),l[e][0]=this.loc,l[e][1]=this.loc,l},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"tick_coords\",{get:function(){for(var t=this.dimension,e=(t+1)%2,i=this.ranges[0],n=this.computed_bounds,r=n[0],o=n[1],s=this.ticker.get_ticks(r,o,i,this.loc,{}),a=s.major,l=s.minor,h=[[],[]],u=[[],[]],c=[i.min,i.max],_=c[0],p=c[1],d=0;dp||(h[t].push(a[d]),h[e].push(this.loc));for(var d=0;dp||(u[t].push(l[d]),u[e].push(this.loc));return{major:h,minor:u}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"loc\",{get:function(){var t=this.ranges,e=t[1];switch(this.panel.side){case\"left\":case\"below\":return e.start;case\"right\":case\"above\":return e.end}},enumerable:!0,configurable:!0}),e}(r.GuideRenderer);i.Axis=p,p.initClass()},function(t,e,i){var n=t(369),r=t(70),o=t(182),s=t(93),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype._render=function(t,e,i){this._draw_group_separators(t,e,i)},e.prototype._draw_group_separators=function(t,e,i){var n=this.model.ranges[0],r=this.model.computed_bounds,o=r[0],s=r[1];if(n.tops&&!(n.tops.length<2)&&this.visuals.separator_line.doit){for(var a=this.model.dimension,l=(a+1)%2,h=[[],[]],u=0,c=0;co&&f1&&(l.tops[e]=a.tops),l.tops[i]=a.tops.map(function(e){return t.loc}),l},enumerable:!0,configurable:!0}),e}(r.Axis);i.CategoricalAxis=l,l.initClass()},function(t,e,i){var n=t(369),r=t(70),o=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"ContinuousAxis\"},e}(r.Axis);i.ContinuousAxis=o,o.initClass()},function(t,e,i){var n=t(369),r=t(75),o=t(94),s=t(185),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e}(r.LinearAxisView);i.DatetimeAxisView=a;var l=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"DatetimeAxis\",this.prototype.default_view=a,this.override({ticker:function(){return new s.DatetimeTicker},formatter:function(){return new o.DatetimeTickFormatter}})},e}(r.LinearAxis);i.DatetimeAxis=l,l.initClass()},function(t,e,i){var n=t(70);i.Axis=n.Axis;var r=t(71);i.CategoricalAxis=r.CategoricalAxis;var o=t(72);i.ContinuousAxis=o.ContinuousAxis;var s=t(73);i.DatetimeAxis=s.DatetimeAxis;var a=t(75);i.LinearAxis=a.LinearAxis;var l=t(76);i.LogAxis=l.LogAxis},function(t,e,i){var n=t(369),r=t(70),o=t(72),s=t(92),a=t(181),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e}(r.AxisView);i.LinearAxisView=l;var h=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"LinearAxis\",this.prototype.default_view=l,this.override({ticker:function(){return new a.BasicTicker},formatter:function(){return new s.BasicTickFormatter}})},e}(o.ContinuousAxis);i.LinearAxis=h,h.initClass()},function(t,e,i){var n=t(369),r=t(70),o=t(72),s=t(97),a=t(189),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e}(r.AxisView);i.LogAxisView=l;var h=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"LogAxis\",this.prototype.default_view=l,this.override({ticker:function(){return new a.LogTicker},formatter:function(){return new s.LogTickFormatter}})},e}(o.ContinuousAxis);i.LogAxis=h,h.initClass()},function(t,e,i){var n=t(369),r=t(15),o=t(31),s=t(51),a=function(e){function i(t,i){return e.call(this,t,i)||this}return n.__extends(i,e),i.initClass=function(){this.prototype.type=\"CustomJS\",this.define({args:[r.Any,{}],code:[r.String,\"\"]})},Object.defineProperty(i.prototype,\"values\",{get:function(){return this._make_values()},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,\"func\",{get:function(){return this._make_func()},enumerable:!0,configurable:!0}),i.prototype.execute=function(e,i){return this.func.apply(e,this.values.concat(e,i,t,{}))},i.prototype._make_values=function(){return o.values(this.args)},i.prototype._make_func=function(){return new(Function.bind.apply(Function,[void 0].concat(Object.keys(this.args),[\"cb_obj\",\"cb_data\",\"require\",\"exports\",this.code])))},i}(s.Model);i.CustomJS=a,a.initClass()},function(t,e,i){var n=t(77);i.CustomJS=n.CustomJS;var r=t(79);i.OpenURL=r.OpenURL},function(t,e,i){var n=t(369),r=t(51),o=t(15),s=t(35),a=t(40),l=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"OpenURL\",this.define({url:[o.String,\"http://\"]})},e.prototype.execute=function(t,e){for(var i=0,n=s.get_indices(e.source);i0?a.all(this.booleans,l.isBoolean)?(this.booleans.length!==t.get_length()&&s.logger.warn(\"BooleanFilter \"+this.id+\": length of booleans doesn't match data source\"),a.range(0,this.booleans.length).filter(function(t){return!0===e.booleans[t]})):(s.logger.warn(\"BooleanFilter \"+this.id+\": booleans should be array of booleans, defaulting to no filtering\"),null):(0===(null!=this.booleans?this.booleans.length:void 0)?s.logger.warn(\"BooleanFilter \"+this.id+\": booleans is empty, defaulting to no filtering\"):s.logger.warn(\"BooleanFilter \"+this.id+\": booleans was not set, defaulting to no filtering\"),null)},e}(r.Filter);i.BooleanFilter=h,h.initClass()},function(t,e,i){var n=t(369),r=t(88),o=t(15),s=t(31),a=function(e){function i(t,i){return e.call(this,t,i)||this}return n.__extends(i,e),i.initClass=function(){this.prototype.type=\"CustomJSFilter\",this.define({args:[o.Any,{}],code:[o.String,\"\"]})},Object.defineProperty(i.prototype,\"values\",{get:function(){return this._make_values()},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,\"func\",{get:function(){return this._make_func()},enumerable:!0,configurable:!0}),i.prototype.compute_indices=function(i){return this.filter=this.func.apply(this,this.values.concat([i,t,{}])),e.prototype.compute_indices.call(this,i)},i.prototype._make_values=function(){return s.values(this.args)},i.prototype._make_func=function(){return new(Function.bind.apply(Function,[void 0].concat(Object.keys(this.args),[\"source\",\"require\",\"exports\",this.code])))},i}(r.Filter);i.CustomJSFilter=a,a.initClass()},function(t,e,i){var n=t(369),r=t(51),o=t(15),s=t(43),a=t(22),l=t(14),h=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"Filter\",this.define({filter:[o.Array,null]})},e.prototype.compute_indices=function(t){var e=this;return(null!=this.filter?this.filter.length:void 0)>=0?a.all(this.filter,s.isBoolean)?a.range(0,this.filter.length).filter(function(t){return!0===e.filter[t]}):a.all(this.filter,s.isInteger)?this.filter:(l.logger.warn(\"Filter \"+this.id+\": filter should either be array of only booleans or only integers, defaulting to no filtering\"),null):(l.logger.warn(\"Filter \"+this.id+\": filter was not set to be an array, defaulting to no filtering\"),null)},e}(r.Model);i.Filter=h,h.initClass()},function(t,e,i){var n=t(369),r=t(88),o=t(15),s=t(14),a=t(22),l=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"GroupFilter\",this.define({column_name:[o.String],group:[o.String]})},e.prototype.compute_indices=function(t){var e=this,i=t.get_column(this.column_name);return null==i?(s.logger.warn(\"group filter: groupby column not found in data source\"),null):(this.indices=a.range(0,t.get_length()).filter(function(t){return i[t]===e.group}),0===this.indices.length&&s.logger.warn(\"group filter: group '\"+this.group+\"' did not match any values in column '\"+this.column_name+\"'\"),this.indices)},e}(r.Filter);i.GroupFilter=l,l.initClass()},function(t,e,i){var n=t(86);i.BooleanFilter=n.BooleanFilter;var r=t(87);i.CustomJSFilter=r.CustomJSFilter;var o=t(88);i.Filter=o.Filter;var s=t(89);i.GroupFilter=s.GroupFilter;var a=t(91);i.IndexFilter=a.IndexFilter},function(t,e,i){var n=t(369),r=t(88),o=t(15),s=t(14),a=t(43),l=t(22),h=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"IndexFilter\",this.define({indices:[o.Array,null]})},e.prototype.compute_indices=function(t){return(null!=this.indices?this.indices.length:void 0)>=0?l.all(this.indices,a.isInteger)?this.indices:(s.logger.warn(\"IndexFilter \"+this.id+\": indices should be array of integers, defaulting to no filtering\"),null):(s.logger.warn(\"IndexFilter \"+this.id+\": indices was not set, defaulting to no filtering\"),null)},e}(r.Filter);i.IndexFilter=h,h.initClass()},function(t,e,i){var n=t(369),r=t(101),o=t(15),s=t(43),a=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"BasicTickFormatter\",this.define({precision:[o.Any,\"auto\"],use_scientific:[o.Bool,!0],power_limit_high:[o.Number,5],power_limit_low:[o.Number,-3]})},Object.defineProperty(e.prototype,\"scientific_limit_low\",{get:function(){return Math.pow(10,this.power_limit_low)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"scientific_limit_high\",{get:function(){return Math.pow(10,this.power_limit_high)},enumerable:!0,configurable:!0}),e.prototype.initialize=function(){t.prototype.initialize.call(this),this.last_precision=3},e.prototype.doFormat=function(t,e){var i;if(0===t.length)return[];var n=0;t.length>=2&&(n=Math.abs(t[1]-t[0])/1e4);var r=!1;if(this.use_scientific)for(var o=0,a=t;on&&(h>=this.scientific_limit_high||h<=this.scientific_limit_low)){r=!0;break}}var u=this.precision;if(null==u||s.isNumber(u)){if(i=new Array(t.length),r)for(var c=0,_=t.length;c<_;c++)i[c]=t[c].toExponential(u||void 0);else for(var c=0,_=t.length;c<_;c++)i[c]=t[c].toFixed(u||void 0).replace(/(\\.[0-9]*?)0+$/,\"$1\").replace(/\\.$/,\"\");return i}if(\"auto\"===u){i=new Array(t.length);for(var p=this.last_precision,d=this.last_precision<=15;d?p<=15:p>=15;d?p++:p--){var f=!0;if(r){for(var c=0,_=t.length;c<_;c++)if(i[c]=t[c].toExponential(p),c>0&&i[c]===i[c-1]){f=!1;break}if(f)break}else{for(var c=0,_=t.length;c<_;c++)if(i[c]=t[c].toFixed(p).replace(/(\\.[0-9]*?)0+$/,\"$1\").replace(/\\.$/,\"\"),c>0&&i[c]===i[c-1]){f=!1;break}if(f)break}if(f)return this.last_precision=p,i}}return i},e}(r.TickFormatter);i.BasicTickFormatter=a,a.initClass()},function(t,e,i){var n=t(369),r=t(101),o=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"CategoricalTickFormatter\"},e.prototype.doFormat=function(t,e){return t},e}(r.TickFormatter);i.CategoricalTickFormatter=o,o.initClass()},function(t,e,i){var n=t(369),r=t(367),o=t(368),s=t(101),a=t(14),l=t(15),h=t(22),u=t(43),c=function(t){return o(t,\"%Y %m %d %H %M %S\").split(/\\s+/).map(function(t){return parseInt(t,10)})},_=function(t,e){if(u.isFunction(e))return e(t);var i=r.sprintf(\"$1%06d\",function(t){return Math.round(t/1e3%1*1e6)}(t));return-1===(e=e.replace(/((^|[^%])(%%)*)%f/,i)).indexOf(\"%\")?e:o(t,e)},p=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"DatetimeTickFormatter\",this.define({microseconds:[l.Array,[\"%fus\"]],milliseconds:[l.Array,[\"%3Nms\",\"%S.%3Ns\"]],seconds:[l.Array,[\"%Ss\"]],minsec:[l.Array,[\":%M:%S\"]],minutes:[l.Array,[\":%M\",\"%Mm\"]],hourmin:[l.Array,[\"%H:%M\"]],hours:[l.Array,[\"%Hh\",\"%H:%M\"]],days:[l.Array,[\"%m/%d\",\"%a%d\"]],months:[l.Array,[\"%m/%Y\",\"%b%y\"]],years:[l.Array,[\"%Y\"]]}),this.prototype.format_order=[\"microseconds\",\"milliseconds\",\"seconds\",\"minsec\",\"minutes\",\"hourmin\",\"hours\",\"days\",\"months\",\"years\"],this.prototype.strip_leading_zeros=!0},e.prototype.initialize=function(){t.prototype.initialize.call(this),this._update_width_formats()},e.prototype._update_width_formats=function(){var t=o(new Date),e=function(e){var i=e.map(function(e){return _(t,e).length}),n=h.sortBy(h.zip(i,e),function(){for(var t=[],e=0;e=60?\"minsec\":\"seconds\";case!(i<3600):return e>=3600?\"hourmin\":\"minutes\";case!(i<86400):return\"hours\";case!(i<2678400):return\"days\";case!(i<31536e3):return\"months\";default:return\"years\"}},e.prototype.doFormat=function(t,e,i,n,r,o){void 0===i&&(i=null),void 0===n&&(n=null),void 0===r&&(r=.3),void 0===o&&(o=null);var s;if(0===t.length)return[];var l=Math.abs(t[t.length-1]-t[0])/1e3;s=o?o.resolution:l/(t.length-1);var h=this._get_resolution_str(s,l),u=this._width_formats[h],p=u[0],d=u[1],f=d[0];if(n){for(var v=[],m=0,g=p.length;m0&&(f=v[v.length-1])}for(var y=[],b=this.format_order.indexOf(h),x={},w=0,k=this.format_order;w0&&r[o]===r[o-1]){n=!0;break}return n&&(r=this.basic_formatter.doFormat(t)),r},e}(r.TickFormatter);i.LogTickFormatter=l,l.initClass()},function(t,e,i){var n=t(369),r=t(92),o=t(15),s=t(32),a=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"MercatorTickFormatter\",this.define({dimension:[o.LatLon]})},e.prototype.doFormat=function(e,i){if(null==this.dimension)throw new Error(\"MercatorTickFormatter.dimension not configured\");if(0===e.length)return[];var n=new Array(e.length);if(\"lon\"===this.dimension)for(var r=0,o=e.length;r=x&&f.push([y,S])}for(var T=this.model.properties.direction.value(),C=[],M=0,A=f;M=0||navigator.userAgent.indexOf(\"Trident\")>0||navigator.userAgent.indexOf(\"Edge\")>0;if(this.visuals.fill.doit){if(this.visuals.fill.set_vectorize(t,h),t.beginPath(),u)for(var c=0,_=[!1,!0];c<_.length;c++){var p=_[c];t.arc(n[h],r[h],o[h],0,Math.PI,p),t.arc(n[h],r[h],s[h],Math.PI,0,!p)}else t.arc(n[h],r[h],o[h],0,2*Math.PI,!0),t.arc(n[h],r[h],s[h],2*Math.PI,0,!1);t.fill()}this.visuals.line.doit&&(this.visuals.line.set_vectorize(t,h),t.beginPath(),t.arc(n[h],r[h],o[h],0,2*Math.PI),t.moveTo(n[h]+s[h],r[h]),t.arc(n[h],r[h],s[h],0,2*Math.PI),t.stroke())}}},e.prototype._hit_point=function(t){for(var e=t.sx,i=t.sy,n=this.renderer.xscale.invert(e),r=n-this.max_radius,s=n+this.max_radius,a=this.renderer.yscale.invert(i),l=a-this.max_radius,h=a+this.max_radius,u=[],c=o.validate_bbox_coords([r,s],[l,h]),_=0,p=this.index.indices(c);_=v&&u.push([d,k])}return o.create_1d_hit_test_result(u)},e.prototype.draw_legend_for_index=function(t,e,i,n,r,o){var s=[o],a={};a[o]=(e+i)/2;var l={};l[o]=(n+r)/2;var h=.5*Math.min(Math.abs(i-e),Math.abs(r-n)),u={};u[o]=.4*h;var c={};c[o]=.8*h;var _={sx:a,sy:l,sinner_radius:u,souter_radius:c};return this._render(t,s,_)},e}(r.XYGlyphView);i.AnnulusView=a;var l=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"Annulus\",this.prototype.default_view=a,this.mixins([\"line\",\"fill\"]),this.define({inner_radius:[s.DistanceSpec],outer_radius:[s.DistanceSpec]})},e}(r.XYGlyph);i.Annulus=l,l.initClass()},function(t,e,i){var n=t(369),r=t(129),o=t(15),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype._map_data=function(){return\"data\"===this.model.properties.radius.units?this.sradius=this.sdist(this.renderer.xscale,this._x,this._radius):this.sradius=this._radius},e.prototype._render=function(t,e,i){var n=i.sx,r=i.sy,o=i.sradius,s=i._start_angle,a=i._end_angle;if(this.visuals.line.doit)for(var l=this.model.properties.direction.value(),h=0,u=e;h1?(c[o]=u,_[o]=u/h):(c[o]=u*h,_[o]=u);var p={sx:a,sy:l,sw:c,sh:_};return this._render(t,s,p)},e.prototype._bounds=function(t){return this.max_wh2_bounds(t)},e}(r.XYGlyphView);i.EllipseView=s;var a=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"Ellipse\",this.prototype.default_view=s,this.mixins([\"line\",\"fill\"]),this.define({angle:[o.AngleSpec,0],width:[o.DistanceSpec],height:[o.DistanceSpec]})},e}(r.XYGlyph);i.Ellipse=a,a.initClass()},function(t,e,i){var n=t(369),r=t(9),o=t(15),s=t(24),a=t(33),l=t(46),h=t(51),u=t(47),c=t(14),_=t(31),p=t(43),d=t(115),f=function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return n.__extends(i,e),i.prototype.initialize=function(i){e.prototype.initialize.call(this,i),this._nohit_warned={},this.renderer=i.renderer,this.visuals=new u.Visuals(this.model);var n=this.renderer.plot_view.canvas_view.ctx;if(null!=n.glcanvas){var r=void 0;try{r=t(430)}catch(t){if(\"MODULE_NOT_FOUND\"!==t.code)throw t;c.logger.warn(\"WebGL was requested and is supported, but bokeh-gl(.min).js is not available, falling back to 2D rendering.\"),r=null}if(null!=r){var o=r[this.model.type+\"GLGlyph\"];null!=o&&(this.glglyph=new o(n.glcanvas.gl,this))}}},i.prototype.set_visuals=function(t){if(this.visuals.warm_cache(t),null!=this.glglyph)return this.glglyph.set_visuals_changed()},i.prototype.render=function(t,e,i){if(t.beginPath(),null==this.glglyph||!this.glglyph.render(t,e,i))return this._render(t,e,i)},i.prototype.has_finished=function(){return!0},i.prototype.notify_finished=function(){return this.renderer.notify_finished()},i.prototype.bounds=function(){return null==this.index?s.empty():this._bounds(this.index.bbox)},i.prototype.log_bounds=function(){if(null==this.index)return s.empty();for(var t=s.empty(),e=this.index.search(s.positive_x()),i=this.index.search(s.positive_y()),n=0,r=e;nt.maxX&&(t.maxX=o.maxX)}for(var a=0,l=i;at.maxY&&(t.maxY=h.maxY)}return this._bounds(t)},i.prototype.max_wh2_bounds=function(t){return{minX:t.minX-this.max_w2,maxX:t.maxX+this.max_w2,minY:t.minY-this.max_h2,maxY:t.maxY+this.max_h2}},i.prototype.get_anchor_point=function(t,e){for(var i=[],n=2;n0?(n=this._image[t],this._height[t]=r[0],this._width[t]=r[1]):(n=a.concat(this._image[t]),this._height[t]=this._image[t].length,this._width[t]=this._image[t][0].length),null!=this.image_data[t]&&this.image_data[t].width===this._width[t]&&this.image_data[t].height===this._height[t]?i=this.image_data[t]:((i=document.createElement(\"canvas\")).width=this._width[t],i.height=this._height[t]);var o=i.getContext(\"2d\"),s=o.getImageData(0,0,this._width[t],this._height[t]),l=this.model.color_mapper,h=l.v_map_screen(n,!0),u=new Uint8Array(h);s.data.set(u),o.putImageData(s,0,0),this.image_data[t]=i,this.max_dw=0,\"data\"===this._dw.units&&(this.max_dw=a.max(this._dw)),this.max_dh=0,\"data\"===this._dh.units&&(this.max_dh=a.max(this._dh))}},e.prototype._map_data=function(){switch(this.model.properties.dw.units){case\"data\":this.sw=this.sdist(this.renderer.xscale,this._x,this._dw,\"edge\",this.model.dilate);break;case\"screen\":this.sw=this._dw}switch(this.model.properties.dh.units){case\"data\":return this.sh=this.sdist(this.renderer.yscale,this._y,this._dh,\"edge\",this.model.dilate);case\"screen\":return this.sh=this._dh}},e.prototype._render=function(t,e,i){var n=i.image_data,r=i.sx,o=i.sy,s=i.sw,a=i.sh,l=t.getImageSmoothingEnabled();t.setImageSmoothingEnabled(!1);for(var h=0,u=e;h0)r=this._image[i].buffer,this._height[i]=a[0],this._width[i]=a[1];else{var l=s.concat(this._image[i]);r=new ArrayBuffer(4*l.length);for(var h=new Uint32Array(r),u=0,c=l.length;u0?(o.logger.trace(\"ImageURL failed to load \"+t._url[n]+\" image, retrying in \"+i+\" ms\"),setTimeout(function(){return r.src=t._url[n]},i)):o.logger.warn(\"ImageURL unable to load \"+t._url[n]+\" image after \"+e+\" retries\"),t.retries[n]-=1}}(n,s),s.onload=function(e,i){return function(){return t.image[i]=e,t.renderer.request_render()}}(s,n),s.src=this._url[n]}},e.prototype.has_finished=function(){return t.prototype.has_finished.call(this)&&!0===this._images_rendered},e.prototype._map_data=function(){var t=this,e=null!=this.model.w?this._w:function(){for(var e=[],i=0,n=t._x;i1&&(t.stroke(),o=!1)}o?t.lineTo(n[h],r[h]):(t.beginPath(),t.moveTo(n[h],r[h]),o=!0),s=h}if(o)return t.stroke()},e.prototype._hit_point=function(t){for(var e=this,i=o.create_hit_test_result(),n={x:t.sx,y:t.sy},r=9999,s=Math.max(2,this.visuals.line.line_width.value()/2),a=0,l=this.sx.length-1;a0&&(l[h]=c)}return a[\"1d\"].indices=s.keys(l).map(parseInt),a[\"2d\"].indices=l,a},e.prototype.get_interpolation_hit=function(t,e,i){var n,r,s,a,l=i.sx,h=i.sy,u=[this._xs[t][e],this._ys[t][e],this._xs[t][e+1],this._ys[t][e+1]],c=u[0],_=u[1],p=u[2],d=u[3];\"point\"===i.type?(v=this.renderer.yscale.r_invert(h-1,h+1),s=v[0],a=v[1],m=this.renderer.xscale.r_invert(l-1,l+1),n=m[0],r=m[1]):\"v\"===i.direction?(g=this.renderer.yscale.r_invert(h,h),s=g[0],a=g[1],n=(y=[c,p])[0],r=y[1]):(b=this.renderer.xscale.r_invert(l,l),n=b[0],r=b[1],s=(x=[_,d])[0],a=x[1]);var f=o.check_2_segments_intersect(n,s,r,a,c,_,p,d);return[f.x,f.y];var v,m,g,y,b,x},e.prototype.draw_legend_for_index=function(t,e,i,n,r,o){return this._generic_line_legend(t,e,i,n,r,o)},e}(h.GlyphView);i.MultiLineView=u;var c=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"MultiLine\",this.prototype.default_view=u,this.coords([[\"xs\",\"ys\"]]),this.mixins([\"line\"])},e}(h.Glyph);i.MultiLine=c,c.initClass()},function(t,e,i){var n=t(369),r=t(129),o=t(15),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype._set_data=function(){if(this.max_w2=0,\"data\"===this.model.properties.width.units&&(this.max_w2=this.max_width/2),this.max_h2=0,\"data\"===this.model.properties.height.units)return this.max_h2=this.max_height/2},e.prototype._map_data=function(){return\"data\"===this.model.properties.width.units?this.sw=this.sdist(this.renderer.xscale,this._x,this._width,\"center\"):this.sw=this._width,\"data\"===this.model.properties.height.units?this.sh=this.sdist(this.renderer.yscale,this._y,this._height,\"center\"):this.sh=this._height},e.prototype._render=function(t,e,i){for(var n=i.sx,r=i.sy,o=i.sw,s=i.sh,a=0,l=e;a1?(c[o]=u,_[o]=u/h):(c[o]=u*h,_[o]=u);var p={sx:a,sy:l,sw:c,sh:_};return this._render(t,s,p)},e.prototype._bounds=function(t){return this.max_wh2_bounds(t)},e}(r.XYGlyphView);i.OvalView=s;var a=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"Oval\",this.prototype.default_view=s,this.mixins([\"line\",\"fill\"]),this.define({angle:[o.AngleSpec,0],width:[o.DistanceSpec],height:[o.DistanceSpec]})},e}(r.XYGlyph);i.Oval=a,a.initClass()},function(t,e,i){var n=t(369),r=t(129),o=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype._render=function(t,e,i){var n=i.sx,r=i.sy;if(this.visuals.fill.doit){this.visuals.fill.set_value(t);for(var o=0,s=e;o0;){var o=void 0,l=s.findLastIndex(r,function(t){return a.isStrictNaN(t)});l>=0?o=r.splice(l):(o=r,r=[]);var h=o.filter(function(t){return!a.isStrictNaN(t)});e[i].push(h)}}return e},e.prototype._index_data=function(){for(var t=this._build_discontinuous_object(this._xs),e=this._build_discontinuous_object(this._ys),i=[],n=0,o=this._xs.length;n=0,x=n-this.sy1[b]<=this.sh[b]&&n-this.sy1[b]>=0;x&&w&&v.push(b)}var M=o.create_hit_test_result();return M[\"1d\"].indices=v,M},e.prototype._map_dist_corner_for_data_side_length=function(t,e,i,n){var r;null!=i.source_range.synthetic&&(t=t.map(function(t){return i.source_range.synthetic(t)}));var o=function(){for(var i=[],n=0,r=t.length;nr[1]&&(e=r[1])):(t=r[0],e=r[1]),[t,e]},e.prototype.grid_coords=function(t,e){void 0===e&&(e=!0);var i=this.dimension,n=(i+1)%2,r=this.ranges(),o=r[0],s=r[1],a=this.computed_bounds(),l=a[0],h=a[1];x=[Math.min(l,h),Math.max(l,h)],l=x[0],h=x[1];for(var u=this.ticker.get_ticks(l,h,o,s.min,{})[t],c=o.min,_=o.max,p=s.min,d=s.max,f=[[],[]],v=0;v1?y[1]:\"\",w=this._horizontal?\"row\":\"col\";g=b+\" \"+w+\"-\"+o+\"-\"+a+\"-\"+x}else g=v;s[g]=g in s?s[g].concat(m):m}a++}return s},e.prototype._align_inner_cell_edges_constraints=function(){var t=[];if(null!=this.document&&s.includes(this.document.roots(),this)){var e=this._flatten_cell_edge_variables(this._horizontal);for(var i in e){var n=e[i];if(n.length>1)for(var o=n[0],a=1;a0)if(this._horizontal==t){var r=i[0],o=i[i.length-1];r instanceof e?n[0]=n[0].concat(r._find_edge_leaves(t)[0]):n[0].push(r),o instanceof e?n[1]=n[1].concat(o._find_edge_leaves(t)[1]):n[1].push(o)}else for(var s=0,a=i;s1)for(var e=t[0],i=1;i0?this.model._width.value-20+\"px\":\"100%\",this.el.style.width=i}},e.prototype.get_height=function(){var t=0;for(var e in this.child_views){var i=this.child_views[e],n=i.el,r=getComputedStyle(n),o=parseInt(r.marginTop)||0,s=parseInt(r.marginBottom)||0;t+=n.offsetHeight+o+s}return t+20},e.prototype.get_width=function(){if(null!=this.model.width)return this.model.width;var t=this.el.scrollWidth+20;for(var e in this.child_views){var i=this.child_views[e],n=i.el.scrollWidth;n>t&&(t=n)}return t},e}(a.LayoutDOMView);i.WidgetBoxView=l;var h=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"WidgetBox\",this.prototype.default_view=l,this.define({children:[o.Array,[]]})},e.prototype.initialize=function(){t.prototype.initialize.call(this),\"fixed\"==this.sizing_mode&&null==this.width&&(this.width=300,r.logger.info(\"WidgetBox mode is fixed, but no width specified. Using default of 300.\"))},e.prototype.get_constrained_variables=function(){var e=s.extend({},t.prototype.get_constrained_variables.call(this),{on_edge_align_top:this._top,on_edge_align_bottom:this._height_minus_bottom,on_edge_align_left:this._left,on_edge_align_right:this._width_minus_right,box_cell_align_top:this._top,box_cell_align_bottom:this._height_minus_bottom,box_cell_align_left:this._left,box_cell_align_right:this._width_minus_right,box_equal_size_top:this._top,box_equal_size_bottom:this._height_minus_bottom});return\"fixed\"!=this.sizing_mode&&(e.box_equal_size_left=this._left,e.box_equal_size_right=this._width_minus_right),e},e.prototype.get_layoutable_children=function(){return this.children},e}(a.LayoutDOM);i.WidgetBox=h,h.initClass()},function(t,e,i){var n=t(369),r=t(145),o=t(15),s=t(22),a=t(43),l=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"CategoricalColorMapper\",this.define({factors:[o.Array],start:[o.Number,0],end:[o.Number]})},e.prototype._get_values=function(t,e,i){void 0===i&&(i=!1);for(var n=[],r=function(t){var i=void 0,r=void 0;a.isString(t)?r=o.factors.indexOf(t):(null!=o.start?t=null!=o.end?t.slice(o.start,o.end):t.slice(o.start):null!=o.end&&(t=t.slice(0,o.end)),r=1===t.length?o.factors.indexOf(t[0]):s.findIndex(o.factors,function(e){return function(t,e){if(t.length!==e.length)return!1;for(var i=0,n=t.length;i=e.length?o.nan_color:e[r],n.push(i)},o=this,l=0,h=t;l>16,r[l+2]=(65280&a)>>8,r[l+3]=255&a}else for(var r=new Uint32Array(n),o=0,s=t.length;oo?null!=this.high_color?a.push(u):a.push(e[o]):a.push(e[m])}else a.push(e[o])}return a},e}(a.ColorMapper);i.LinearColorMapper=l,l.initClass()},function(t,e,i){var n=t(369),r=t(15),o=t(27),s=t(22),a=t(145),l=null!=Math.log1p?Math.log1p:function(t){return Math.log(1+t)},h=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"LogColorMapper\",this.define({high:[r.Number],low:[r.Number],high_color:[r.Color],low_color:[r.Color]})},e.prototype.initialize=function(){t.prototype.initialize.call(this),this._nan_color=this._build_palette([o.color2hex(this.nan_color)])[0],this._high_color=null!=this.high_color?this._build_palette([o.color2hex(this.high_color)])[0]:void 0,this._low_color=null!=this.low_color?this._build_palette([o.color2hex(this.low_color)])[0]:void 0},e.prototype._get_values=function(t,e,i){void 0===i&&(i=!1);for(var n=e.length,r=null!=this.low?this.low:s.min(t),o=null!=this.high?this.high:s.max(t),a=n/(l(o)-l(r)),h=e.length-1,u=[],c=i?this._nan_color:this.nan_color,_=i?this._high_color:this.high_color,p=i?this._low_color:this.low_color,d=0,f=t;do)null!=this.high_color?u.push(_):u.push(e[h]);else if(v!==o)if(vh&&(g=h),u.push(e[g])}else u.push(e[h])}return u},e}(a.ColorMapper);i.LogColorMapper=h,h.initClass()},function(t,e,i){var n=t(369),r=t(150),o=Math.sqrt(3),s=function(t,e){return t.moveTo(-e,e),t.lineTo(e,-e),t.moveTo(-e,-e),t.lineTo(e,e)},a=function(t,e){return t.moveTo(0,e),t.lineTo(0,-e),t.moveTo(-e,0),t.lineTo(e,0)},l=function(t,e){return t.moveTo(0,e),t.lineTo(e/1.5,0),t.lineTo(0,-e),t.lineTo(-e/1.5,0),t.closePath()},h=function(t,e){var i=e*o,n=i/3;return t.moveTo(-e,n),t.lineTo(e,n),t.lineTo(0,n-i),t.closePath()},u=function(t,e){var i=function(t){function i(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(i,t),i.initClass=function(){this.prototype._render_one=e},i}(r.MarkerView);i.initClass();var o=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return n.__extends(r,e),r.initClass=function(){this.prototype.default_view=i,this.prototype.type=t},r}(r.Marker);return o.initClass(),o};i.Asterisk=u(\"Asterisk\",function(t,e,i,n,r,o,l){var h=.65*r;a(t,r),s(t,h),o.doit&&(o.set_vectorize(t,e),t.stroke())}),i.CircleCross=u(\"CircleCross\",function(t,e,i,n,r,o,s){t.arc(0,0,r,0,2*Math.PI,!1),s.doit&&(s.set_vectorize(t,e),t.fill());o.doit&&(o.set_vectorize(t,e),a(t,r),t.stroke())}),i.CircleX=u(\"CircleX\",function(t,e,i,n,r,o,a){t.arc(0,0,r,0,2*Math.PI,!1),a.doit&&(a.set_vectorize(t,e),t.fill());o.doit&&(o.set_vectorize(t,e),s(t,r),t.stroke())}),i.Cross=u(\"Cross\",function(t,e,i,n,r,o,s){a(t,r),o.doit&&(o.set_vectorize(t,e),t.stroke())}),i.Diamond=u(\"Diamond\",function(t,e,i,n,r,o,s){l(t,r),s.doit&&(s.set_vectorize(t,e),t.fill());o.doit&&(o.set_vectorize(t,e),t.stroke())}),i.DiamondCross=u(\"DiamondCross\",function(t,e,i,n,r,o,s){l(t,r),s.doit&&(s.set_vectorize(t,e),t.fill());o.doit&&(o.set_vectorize(t,e),a(t,r),t.stroke())}),i.InvertedTriangle=u(\"InvertedTriangle\",function(t,e,i,n,r,o,s){t.rotate(Math.PI),h(t,r),t.rotate(-Math.PI),s.doit&&(s.set_vectorize(t,e),t.fill());o.doit&&(o.set_vectorize(t,e),t.stroke())}),i.Square=u(\"Square\",function(t,e,i,n,r,o,s){var a=2*r;t.rect(-r,-r,a,a),s.doit&&(s.set_vectorize(t,e),t.fill());o.doit&&(o.set_vectorize(t,e),t.stroke())}),i.SquareCross=u(\"SquareCross\",function(t,e,i,n,r,o,s){var l=2*r;t.rect(-r,-r,l,l),s.doit&&(s.set_vectorize(t,e),t.fill());o.doit&&(o.set_vectorize(t,e),a(t,r),t.stroke())}),i.SquareX=u(\"SquareX\",function(t,e,i,n,r,o,a){var l=2*r;t.rect(-r,-r,l,l),a.doit&&(a.set_vectorize(t,e),t.fill());o.doit&&(o.set_vectorize(t,e),s(t,r),t.stroke())}),i.Triangle=u(\"Triangle\",function(t,e,i,n,r,o,s){h(t,r),s.doit&&(s.set_vectorize(t,e),t.fill());o.doit&&(o.set_vectorize(t,e),t.stroke())}),i.X=u(\"X\",function(t,e,i,n,r,o,a){s(t,r),o.doit&&(o.set_vectorize(t,e),t.stroke())})},function(t,e,i){var n=t(369),r=t(129),o=t(9),s=t(15),a=t(22),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype.draw_legend_for_index=function(t,e,i,n,r,o){var s=[o],a={};a[o]=(e+i)/2;var l={};l[o]=(n+r)/2;var h={};h[o]=.4*Math.min(Math.abs(i-e),Math.abs(r-n));var u={};u[o]=this._angle[o];var c={sx:a,sy:l,_size:h,_angle:u};return this._render(t,s,c)},e.prototype._render=function(t,e,i){for(var n=i.sx,r=i.sy,o=i._size,s=i._angle,a=0,l=e;a=2){this.map.setZoom(r);var o=this._get_projected_bounds(),s=o[0],a=o[1];a-s<0&&this.map.setZoom(n)}this.unpause()}return this._set_bokeh_ranges()},e.prototype._build_map=function(){var t=this,e=window.google.maps;this.map_types={satellite:e.MapTypeId.SATELLITE,terrain:e.MapTypeId.TERRAIN,roadmap:e.MapTypeId.ROADMAP,hybrid:e.MapTypeId.HYBRID};var i=this.model.plot.map_options,n={center:new e.LatLng(i.lat,i.lng),zoom:i.zoom,disableDefaultUI:!0,mapTypeId:this.map_types[i.map_type],scaleControl:i.scale_control};return null!=i.styles&&(n.styles=JSON.parse(i.styles)),this.map=new e.Map(this.canvas_view.map_el,n),e.event.addListener(this.map,\"idle\",function(){return t._set_bokeh_ranges()}),e.event.addListener(this.map,\"bounds_changed\",function(){return t._set_bokeh_ranges()}),e.event.addListenerOnce(this.map,\"tilesloaded\",function(){return t._render_finished()}),this.connect(this.model.plot.properties.map_options.change,function(){return t._update_options()}),this.connect(this.model.plot.map_options.properties.styles.change,function(){return t._update_styles()}),this.connect(this.model.plot.map_options.properties.lat.change,function(){return t._update_center(\"lat\")}),this.connect(this.model.plot.map_options.properties.lng.change,function(){return t._update_center(\"lng\")}),this.connect(this.model.plot.map_options.properties.zoom.change,function(){return t._update_zoom()}),this.connect(this.model.plot.map_options.properties.map_type.change,function(){return t._update_map_type()}),this.connect(this.model.plot.map_options.properties.scale_control.change,function(){return t._update_scale_control()})},e.prototype._render_finished=function(){return this._tiles_loaded=!0,this.notify_finished()},e.prototype.has_finished=function(){return t.prototype.has_finished.call(this)&&!0===this._tiles_loaded},e.prototype._get_latlon_bounds=function(){var t=this.map.getBounds(),e=t.getNorthEast(),i=t.getSouthWest(),n=i.lng(),r=e.lng(),o=i.lat(),s=e.lat();return[n,r,o,s]},e.prototype._get_projected_bounds=function(){var t=this._get_latlon_bounds(),e=t[0],i=t[1],n=t[2],o=t[3],s=r.proj4(r.mercator,[e,n]),a=s[0],l=s[1],h=r.proj4(r.mercator,[i,o]),u=h[0],c=h[1];return[a,u,l,c]},e.prototype._set_bokeh_ranges=function(){var t=this._get_projected_bounds(),e=t[0],i=t[1],n=t[2],r=t[3];return this.frame.x_range.setv({start:e,end:i}),this.frame.y_range.setv({start:n,end:r})},e.prototype._update_center=function(t){var e=this.map.getCenter().toJSON();return e[t]=this.model.plot.map_options[t],this.map.setCenter(e),this._set_bokeh_ranges()},e.prototype._update_map_type=function(){return this.map.setOptions({mapTypeId:this.map_types[this.model.plot.map_options.map_type]})},e.prototype._update_scale_control=function(){return this.map.setOptions({scaleControl:this.model.plot.map_options.scale_control})},e.prototype._update_options=function(){return this._update_styles(),this._update_center(\"lat\"),this._update_center(\"lng\"),this._update_zoom(),this._update_map_type()},e.prototype._update_styles=function(){return this.map.setOptions({styles:JSON.parse(this.model.plot.map_options.styles)})},e.prototype._update_zoom=function(){return this.map.setOptions({zoom:this.model.plot.map_options.zoom}),this._set_bokeh_ranges()},e.prototype._map_hook=function(t,e){var i=e[0],n=e[1],r=e[2],o=e[3];if(this.canvas_view.map_el.style.top=n+\"px\",this.canvas_view.map_el.style.left=i+\"px\",this.canvas_view.map_el.style.width=r+\"px\",this.canvas_view.map_el.style.height=o+\"px\",null==this.map&&null!=(null!=window.google?window.google.maps:void 0))return this._build_map()},e.prototype._paint_empty=function(t,e){var i=this.canvas._width.value,n=this.canvas._height.value,r=e[0],o=e[1],s=e[2],a=e[3];return t.clearRect(0,0,i,n),t.beginPath(),t.moveTo(0,0),t.lineTo(0,n),t.lineTo(i,n),t.lineTo(i,0),t.lineTo(0,0),t.moveTo(r,o),t.lineTo(r+s,o),t.lineTo(r+s,o+a),t.lineTo(r,o+a),t.lineTo(r,o),t.closePath(),t.fillStyle=this.model.plot.border_fill_color,t.fill()},e}(o.PlotCanvasView);i.GMapPlotCanvasView=l;var h=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"GMapPlotCanvas\",this.prototype.default_view=l},e.prototype.initialize=function(){this.use_map=!0,t.prototype.initialize.call(this)},e}(o.PlotCanvas);i.GMapPlotCanvas=h,h.initClass()},function(t,e,i){var n=t(151);i.MapOptions=n.MapOptions;var r=t(151);i.GMapOptions=r.GMapOptions;var o=t(151);i.GMapPlot=o.GMapPlot;var s=t(152);i.GMapPlotCanvas=s.GMapPlotCanvas;var a=t(154);i.Plot=a.Plot;var l=t(155);i.PlotCanvas=l.PlotCanvas},function(t,e,i){var n=t(369),r=t(13),o=t(14),s=t(15),a=t(22),l=t(31),h=t(43),u=t(140),c=t(66),_=t(169),p=t(238),d=t(67),f=t(155),v=t(174),m=t(162),g=t(3),y=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype.connect_signals=function(){t.prototype.connect_signals.call(this);this.connect(this.model.properties.title.change,function(){return o.logger.warn(\"Title object cannot be replaced. Try changing properties on title to update it after initialization.\")})},e.prototype.css_classes=function(){return t.prototype.css_classes.call(this).concat(\"bk-plot-layout\")},e.prototype.get_height=function(){return this.model._width.value/this.model.get_aspect_ratio()},e.prototype.get_width=function(){return this.model._height.value*this.model.get_aspect_ratio()},e.prototype.save=function(t){this.plot_canvas_view.save(t)},Object.defineProperty(e.prototype,\"plot_canvas_view\",{get:function(){return this.child_views[this.model.plot_canvas.id]},enumerable:!0,configurable:!0}),e}(u.LayoutDOMView);i.PlotView=y;var b=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"Plot\",this.prototype.default_view=y,this.mixins([\"line:outline_\",\"fill:background_\",\"fill:border_\"]),this.define({toolbar:[s.Instance,function(){return new p.Toolbar}],toolbar_location:[s.Location,\"right\"],toolbar_sticky:[s.Boolean,!0],plot_width:[s.Number,600],plot_height:[s.Number,600],title:[s.Any,function(){return new c.Title({text:\"\"})}],title_location:[s.Location,\"above\"],h_symmetry:[s.Bool,!0],v_symmetry:[s.Bool,!1],above:[s.Array,[]],below:[s.Array,[]],left:[s.Array,[]],right:[s.Array,[]],renderers:[s.Array,[]],x_range:[s.Instance],extra_x_ranges:[s.Any,{}],y_range:[s.Instance],extra_y_ranges:[s.Any,{}],x_scale:[s.Instance,function(){return new _.LinearScale}],y_scale:[s.Instance,function(){return new _.LinearScale}],lod_factor:[s.Number,10],lod_interval:[s.Number,300],lod_threshold:[s.Number,2e3],lod_timeout:[s.Number,500],hidpi:[s.Bool,!0],output_backend:[s.OutputBackend,\"canvas\"],min_border:[s.Number,5],min_border_top:[s.Number,null],min_border_left:[s.Number,null],min_border_bottom:[s.Number,null],min_border_right:[s.Number,null],inner_width:[s.Number],inner_height:[s.Number],layout_width:[s.Number],layout_height:[s.Number],match_aspect:[s.Bool,!1],aspect_scale:[s.Number,1]}),this.override({outline_line_color:\"#e5e5e5\",border_fill_color:\"#ffffff\",background_fill_color:\"#ffffff\"}),g.register_with_event(g.UIEvent,this)},e.prototype.initialize=function(){t.prototype.initialize.call(this);for(var e=0,i=l.values(this.extra_x_ranges).concat(this.x_range);e=0},e.prototype.can_redo=function(){return this.state.indexa.end;if(!i){var u=this._get_weight_to_constrain_interval(a,l);u<1&&(l.start=u*l.start+(1-u)*a.start,l.end=u*l.end+(1-u)*a.end)}if(null!=a.bounds){var c=a.bounds[0],_=a.bounds[1],p=Math.abs(l.end-l.start);h?(null!=c&&c>=l.end&&(n=!0,l.end=c,(e||i)&&(l.start=c+p)),null!=_&&_<=l.start&&(n=!0,l.start=_,(e||i)&&(l.end=_-p))):(null!=c&&c>=l.start&&(n=!0,l.start=c,(e||i)&&(l.end=c+p)),null!=_&&_<=l.end&&(n=!0,l.end=_,(e||i)&&(l.start=_-p)))}}if(!i||!n)for(var d=0,f=t;d0&&h0&&h>o&&(s=(o-l)/(h-l)),s=Math.max(0,Math.min(1,s))}return s;var u},e.prototype.update_range=function(t,e,i){if(void 0===e&&(e=!1),void 0===i&&(i=!1),this.pause(),null==t){for(var n in this.frame.x_ranges){var r=this.frame.x_ranges[n];r.reset()}for(var o in this.frame.y_ranges){var r=this.frame.y_ranges[o];r.reset()}this.update_dataranges()}else{var s=[];for(var a in this.frame.x_ranges){var r=this.frame.x_ranges[a];s.push([r,t.xrs[a]])}for(var l in this.frame.y_ranges){var r=this.frame.y_ranges[l];s.push([r,t.yrs[l]])}i&&this._update_ranges_together(s),this._update_ranges_individually(s,e,i)}this.unpause()},e.prototype.reset_range=function(){this.update_range(null)},e.prototype.build_levels=function(){for(var t=this.model.plot.all_renderers,e=Object.keys(this.renderer_views),i=c.build_views(this.renderer_views,t,this.view_options()),n=k.difference(e,t.map(function(t){return t.id})),r=0,o=n;r=0&&in&&e.model.document.interactive_stop(e.model.plot),e.request_render()},n)}else this.model.document.interactive_stop(this.model.plot)}for(var r in this.renderer_views){var o=this.renderer_views[r];if(null==this.range_update_timestamp||o.set_data_timestamp>this.range_update_timestamp){this.update_dataranges();break}}this.model.frame.update_scales();var s=this.canvas_view.ctx;s.pixel_ratio=t=this.canvas.pixel_ratio,s.save(),s.scale(t,t),s.translate(.5,.5);var a=[this.frame._left.value,this.frame._top.value,this.frame._width.value,this.frame._height.value];if(this._map_hook(s,a),this._paint_empty(s,a),this.prepare_webgl(t,a),s.save(),this.visuals.outline_line.doit){this.visuals.outline_line.set_value(s);var l=a[0],h=a[1],u=a[2],c=a[3];l+u===this.canvas._width.value&&(u-=1),h+c===this.canvas._height.value&&(c-=1),s.strokeRect(l,h,u,c)}return s.restore(),this._paint_levels(s,[\"image\",\"underlay\",\"glyph\"],a),this.blit_webgl(t),this._paint_levels(s,[\"annotation\"],a),this._paint_levels(s,[\"overlay\"]),null==this.initial_range_info&&this.set_initial_range(),s.restore(),this._has_finished?void 0:(this._has_finished=!0,this.notify_finished())}},e.prototype._paint_levels=function(t,e,i){void 0===i&&(i=null),t.save(),null!=i&&\"canvas\"===this.model.plot.output_backend&&(t.beginPath(),t.rect.apply(t,i),t.clip());for(var n={},r=0;r0&&(e=e.filter(function(e){return h.includes(t,e.name)})),s.logger.debug(\"computed \"+e.length+\" renderers for DataRange1d \"+this.id);for(var l=0,u=e;lc&&(\"start\"==this.follow?n=i+u*c:\"end\"==this.follow&&(i=n-u*c)),[i,n];var _},e.prototype.update=function(t,e,i,n){if(!this.have_updated_interactively){var r=this.computed_renderers(),o=this._compute_plot_bounds(r,t);null!=n&&(o=this.adjust_bounds_for_aspect(o,n)),this._plot_bounds[i]=o;var s=this._compute_min_max(this._plot_bounds,e),a=s[0],l=s[1],h=this._compute_range(a,l),u=h[0],c=h[1];null!=this._initial_start&&(\"log\"==this.scale_hint?this._initial_start>0&&(u=this._initial_start):u=this._initial_start),null!=this._initial_end&&(\"log\"==this.scale_hint?this._initial_end>0&&(c=this._initial_end):c=this._initial_end);var _=[this.start,this.end],p=_[0],d=_[1];if(u!=p||c!=d){var f={};u!=p&&(f.start=u),c!=d&&(f.end=c),this.setv(f)}\"auto\"==this.bounds&&this.setv({bounds:[u,c]},{silent:!0}),this.change.emit(void 0)}},e.prototype.reset=function(){this.have_updated_interactively=!1,this.setv({range_padding:this._initial_range_padding,range_padding_units:this._initial_range_padding_units,follow:this._initial_follow,follow_interval:this._initial_follow_interval,default_span:this._initial_default_span},{silent:!0}),this.change.emit(void 0)},e}(r.DataRange);i.DataRange1d=u,u.initClass()},function(t,e,i){function n(t,e,i){void 0===i&&(i=0);for(var n={},r=0;rthis.end},enumerable:!0,configurable:!0}),e.prototype.reset=function(){this._set_auto_bounds(),this.start!=this._initial_start||this.end!=this._initial_end?this.setv({start:this._initial_start,end:this._initial_end}):this.change.emit(void 0)},e}(r.Range);i.Range1d=s,s.initClass()},function(t,e,i){var n=t(369),r=t(166),o=t(115),s=t(179),a=t(173),l=t(14),h=t(15),u=t(22),c=t(31),_=t(158),p=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype.initialize=function(e){t.prototype.initialize.call(this,e);var i=this.model.glyph,n=u.includes(i.mixins,\"fill\"),r=u.includes(i.mixins,\"line\"),o=c.clone(i.attributes);delete o.id;var a=function(t){var e=c.clone(o);return n&&c.extend(e,t.fill),r&&c.extend(e,t.line),new i.constructor(e)};this.glyph=this.build_glyph_view(i);var l=this.model.selection_glyph;null==l?l=a({fill:{},line:{}}):\"auto\"===l&&(l=a(this.model.selection_defaults)),this.selection_glyph=this.build_glyph_view(l);var h=this.model.nonselection_glyph;null==h?h=a({fill:{},line:{}}):\"auto\"===h&&(h=a(this.model.nonselection_defaults)),this.nonselection_glyph=this.build_glyph_view(h);var _=this.model.hover_glyph;null!=_&&(this.hover_glyph=this.build_glyph_view(_));var p=this.model.muted_glyph;null!=p&&(this.muted_glyph=this.build_glyph_view(p));var d=a(this.model.decimated_defaults);if(this.decimated_glyph=this.build_glyph_view(d),this.xscale=this.plot_view.frame.xscales[this.model.x_range_name],this.yscale=this.plot_view.frame.yscales[this.model.y_range_name],this.set_data(!1),this.model.data_source instanceof s.RemoteDataSource)return this.model.data_source.setup()},e.prototype.build_glyph_view=function(t){return new t.default_view({model:t,renderer:this,plot_view:this.plot_view,parent:this})},e.prototype.connect_signals=function(){var e=this;t.prototype.connect_signals.call(this),this.connect(this.model.change,function(){return e.request_render()}),this.connect(this.model.glyph.change,function(){return e.set_data()}),this.connect(this.model.data_source.change,function(){return e.set_data()}),this.connect(this.model.data_source.streaming,function(){return e.set_data()}),this.connect(this.model.data_source.patching,function(t){return e.set_data(!0,t)}),this.connect(this.model.data_source._select,function(){return e.request_render()}),null!=this.hover_glyph&&this.connect(this.model.data_source.inspect,function(){return e.request_render()}),this.connect(this.model.properties.view.change,function(){return e.set_data()}),this.connect(this.model.view.change,function(){return e.set_data()});var i=this.plot_model.frame,n=i.x_ranges,r=i.y_ranges;for(var o in n){var s=n[o];s instanceof _.FactorRange&&this.connect(s.change,function(){return e.set_data()})}for(var a in r){var s=r[a];s instanceof _.FactorRange&&this.connect(s.change,function(){return e.set_data()})}this.connect(this.model.glyph.transformchange,function(){return e.set_data()})},e.prototype.have_selection_glyphs=function(){return null!=this.selection_glyph&&null!=this.nonselection_glyph},e.prototype.set_data=function(t,e){void 0===t&&(t=!0),void 0===e&&(e=null);var i=Date.now(),n=this.model.data_source;this.all_indices=this.model.view.indices,this.glyph.model.setv({x_range_name:this.model.x_range_name,y_range_name:this.model.y_range_name},{silent:!0}),this.glyph.set_data(n,this.all_indices,e),this.glyph.set_visuals(n),this.decimated_glyph.set_visuals(n),this.have_selection_glyphs()&&(this.selection_glyph.set_visuals(n),this.nonselection_glyph.set_visuals(n)),null!=this.hover_glyph&&this.hover_glyph.set_visuals(n),null!=this.muted_glyph&&this.muted_glyph.set_visuals(n);var r=this.plot_model.plot.lod_factor;this.decimated=[];for(var o=0,s=Math.floor(this.all_indices.length/r);o0?g[\"1d\"].indices:function(){for(var t=[],e=0,i=Object.keys(g[\"2d\"].indices);e0?y[\"1d\"].indices:function(){for(var t=[],e=0,i=Object.keys(y[\"2d\"].indices);e0&&!c&&null!=b&&this.all_indices.length>b?(d=this.decimated,i=this.decimated_glyph,n=this.decimated_glyph,r=this.selection_glyph):(i=this.model.muted&&null!=this.muted_glyph?this.muted_glyph:this.glyph,n=this.nonselection_glyph,r=this.selection_glyph),null!=this.hover_glyph&&y.length&&(d=u.difference(d,y)),m.length&&this.have_selection_glyphs()){for(var x=Date.now(),w={},k=0,S=m;k0&&(i=r)}}return i},e.prototype.hit_test_helper=function(t,e,i,n,r){if(!this.visible)return!1;var o=e.glyph.hit_test(t);if(null===o)return!1;var s=this.view.convert_selection_from_subset(o);if(\"select\"===r){var a=this.data_source.selection_manager.selector;a.update(s,i,n),this.data_source.selected=a.indices,this.data_source._select.emit(void 0)}else{var l=this.data_source.selection_manager.get_or_create_inspector(this);l.update(s,!0,!1,!0),this.data_source.setv({inspected:l.indices},{silent:!0}),this.data_source.inspect.emit([e,{geometry:t}])}return!s.is_empty()},e.prototype.get_selection_manager=function(){return this.data_source.selection_manager},e}(r.Renderer);i.GlyphRenderer=d,d.initClass()},function(t,e,i){var n=t(369),r=t(166),o=t(130),s=t(15),a=t(4),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype.initialize=function(e){t.prototype.initialize.call(this,e),this.xscale=this.plot_view.frame.xscales.default,this.yscale=this.plot_view.frame.yscales.default,this._renderer_views={},i=a.build_views(this._renderer_views,[this.model.node_renderer,this.model.edge_renderer],this.plot_view.view_options()),this.node_view=i[0],this.edge_view=i[1],this.set_data();var i},e.prototype.connect_signals=function(){var e=this;t.prototype.connect_signals.call(this),this.connect(this.model.layout_provider.change,function(){return e.set_data()}),this.connect(this.model.node_renderer.data_source._select,function(){return e.set_data()}),this.connect(this.model.node_renderer.data_source.inspect,function(){return e.set_data()}),this.connect(this.model.node_renderer.data_source.change,function(){return e.set_data()}),this.connect(this.model.edge_renderer.data_source._select,function(){return e.set_data()}),this.connect(this.model.edge_renderer.data_source.inspect,function(){return e.set_data()}),this.connect(this.model.edge_renderer.data_source.change,function(){return e.set_data()});var i=this.plot_model.frame,n=i.x_ranges,r=i.y_ranges;for(var o in n){var s=n[o];this.connect(s.change,function(){return e.set_data()})}for(var a in r){var s=r[a];this.connect(s.change,function(){return e.set_data()})}},e.prototype.set_data=function(t){void 0===t&&(t=!0),this.node_view.glyph.model.setv({x_range_name:this.model.x_range_name,y_range_name:this.model.y_range_name},{silent:!0}),this.edge_view.glyph.model.setv({x_range_name:this.model.x_range_name,y_range_name:this.model.y_range_name},{silent:!0}),e=this.model.layout_provider.get_node_coordinates(this.model.node_renderer.data_source),this.node_view.glyph._x=e[0],this.node_view.glyph._y=e[1],i=this.model.layout_provider.get_edge_coordinates(this.model.edge_renderer.data_source),this.edge_view.glyph._xs=i[0],this.edge_view.glyph._ys=i[1],this.node_view.glyph.index=this.node_view.glyph._index_data(),this.edge_view.glyph.index=this.edge_view.glyph._index_data(),t&&this.request_render();var e,i},e.prototype.render=function(){return this.edge_view.render(),this.node_view.render()},e.prototype.hit_test=function(t,e,i,n){if(void 0===n&&(n=\"select\"),!this.model.visible)return!1;return\"select\"===n?null!=this.model.selection_policy?this.model.selection_policy.do_selection(t,this,e,i):void 0:null!=this.model.inspection_policy?this.model.inspection_policy.do_inspection(t,this,e,i):void 0},e}(r.RendererView);i.GraphRendererView=l;var h=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"GraphRenderer\",this.prototype.default_view=l,this.define({x_range_name:[s.String,\"default\"],y_range_name:[s.String,\"default\"],layout_provider:[s.Instance],node_renderer:[s.Instance],edge_renderer:[s.Instance],selection_policy:[s.Instance,function(){return new o.NodesOnly}],inspection_policy:[s.Instance,function(){return new o.NodesOnly}]}),this.override({level:\"glyph\"})},e.prototype.get_selection_manager=function(){return this.node_renderer.data_source.selection_manager},e}(r.Renderer);i.GraphRenderer=h,h.initClass()},function(t,e,i){var n=t(369),r=t(166),o=t(15),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e}(r.RendererView);i.GuideRendererView=s;var a=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"GuideRenderer\",this.define({plot:[o.Instance]}),this.override({level:\"overlay\"})},e}(r.Renderer);i.GuideRenderer=a,a.initClass()},function(t,e,i){var n=t(162);i.GlyphRenderer=n.GlyphRenderer;var r=t(163);i.GraphRenderer=r.GraphRenderer;var o=t(164);i.GuideRenderer=o.GuideRenderer;var s=t(166);i.Renderer=s.Renderer},function(t,e,i){var n=t(369),r=t(6),o=t(47),s=t(15),a=t(33),l=t(31),h=t(51),u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype.initialize=function(e){t.prototype.initialize.call(this,e),this.plot_view=e.plot_view,this.visuals=new o.Visuals(this.model),this._has_finished=!0},Object.defineProperty(e.prototype,\"plot_model\",{get:function(){return this.plot_view.model},enumerable:!0,configurable:!0}),e.prototype.request_render=function(){this.plot_view.request_render()},e.prototype.set_data=function(t){var e=this.model.materialize_dataspecs(t);if(l.extend(this,e),this.plot_model.use_map){null!=this._x&&(i=a.project_xy(this._x,this._y),this._x=i[0],this._y=i[1]),null!=this._xs&&(n=a.project_xsys(this._xs,this._ys),this._xs=n[0],this._ys=n[1])}var i,n},e.prototype.map_to_screen=function(t,e){return this.plot_view.map_to_screen(t,e,this.model.x_range_name,this.model.y_range_name)},e}(r.DOMView);i.RendererView=u;var c=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"Renderer\",this.define({level:[s.RenderLevel],visible:[s.Bool,!0]})},e}(h.Model);i.Renderer=c,c.initClass()},function(t,e,i){var n=t(369),r=t(169),o=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"CategoricalScale\"},e.prototype.compute=function(e){return t.prototype.compute.call(this,this.source_range.synthetic(e))},e.prototype.v_compute=function(e){return t.prototype.v_compute.call(this,this.source_range.v_synthetic(e))},e}(r.LinearScale);i.CategoricalScale=o,o.initClass()},function(t,e,i){var n=t(167);i.CategoricalScale=n.CategoricalScale;var r=t(169);i.LinearScale=r.LinearScale;var o=t(170);i.LogScale=o.LogScale;var s=t(171);i.Scale=s.Scale},function(t,e,i){var n=t(369),r=t(171),o=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"LinearScale\"},e.prototype.compute=function(t){var e=this._compute_state(),i=e[0],n=e[1];return i*t+n},e.prototype.v_compute=function(t){for(var e=this._compute_state(),i=e[0],n=e[1],r=new Float64Array(t.length),o=0;o0?this.indices=a.intersection.apply(this,e):this.source instanceof l.ColumnarDataSource&&(this.indices=null!=this.source?this.source.get_indices():void 0),this.indices_map_to_subset()},e.prototype.indices_map_to_subset=function(){var t=this;return this.indices_map={},a.range(0,this.indices.length).map(function(e){return t.indices_map[t.indices[e]]=e})},e.prototype.convert_selection_from_subset=function(t){var e=this,i=s.create_hit_test_result();i.update_through_union(t);var n=t[\"1d\"].indices.map(function(t){return e.indices[t]});return i[\"1d\"].indices=n,i},e.prototype.convert_selection_to_subset=function(t){var e=this,i=s.create_hit_test_result();i.update_through_union(t);var n=t[\"1d\"].indices.map(function(t){return e.indices_map[t]});return i[\"1d\"].indices=n,i},e.prototype.convert_indices_from_subset=function(t){var e=this;return t.map(function(t){return e.indices[t]})},e}(r.Model);i.CDSView=h,h.initClass()},function(t,e,i){var n=t(369),r=t(175),o=t(8),s=t(15),a=t(28),l=t(36),h=t(43);i.concat_typed_arrays=function(t,e){var i=new t.constructor(t.length+e.length);return i.set(t,0),i.set(e,t.length),i},i.stream_to_column=function(t,e,n){var r;if(null!=t.concat)return(t=t.concat(e)).length>n&&(t=t.slice(-n)),t;var o=t.length+e.length;if(null!=n&&o>n){var s=o-n,a=t.length;t.length1&&o.logger.warn(\"Bokeh does not support Polygons with holes in, only exterior ring used.\");for(var a=t.coordinates[0],s=0;s1&&o.logger.warn(\"Bokeh does not support Polygons with holes in, only exterior ring used.\"),h.push(_[0])}for(var l=h.reduce(this._flatten_function),s=0;si&&l0&&h.length>0){for(var _=r/u,p=s.range(0,u).map(function(t){return t*_}),d=0,f=p.slice(1);d1?this.interval=(e[1]-e[0])*o.ONE_DAY:this.interval=31*o.ONE_DAY},e.prototype.get_ticks_no_defaults=function(t,e,i,n){var r=function(t,e){var i=o.last_month_no_later_than(new Date(t)),n=o.last_month_no_later_than(new Date(e));n.setUTCMonth(n.getUTCMonth()+1);var r=[],s=i;for(;r.push(o.copy_date(s)),s.setUTCMonth(s.getUTCMonth()+1),!(s>n););return r}(t,e),s=this.days,l=this.interval,h=a.concat(r.map(function(t){return function(t,e){for(var i=[],n=0,r=s;n0&&o.length>0){for(var f=_/s,v=r.range(0,s).map(function(t){return t*f}),m=0,g=v.slice(1);m0&&o.length>0){for(var A=Math.pow(l,M)/s,v=r.range(1,s+1).map(function(t){return t*A}),E=0,z=v;E1?this.interval=(e[1]-e[0])*o.ONE_MONTH:this.interval=12*o.ONE_MONTH},e.prototype.get_ticks_no_defaults=function(t,e,i,n){var r=function(t,e){var i=o.last_year_no_later_than(new Date(t)),n=o.last_year_no_later_than(new Date(e));n.setUTCFullYear(n.getUTCFullYear()+1);var r=[],s=i;for(;r.push(o.copy_date(s)),s.setUTCFullYear(s.getUTCFullYear()+1),!(s>n););return r}(t,e),s=this.months,l=a.concat(r.map(function(t){return s.map(function(e){var i=o.copy_date(t);return i.setUTCMonth(e),i})})),h=l.map(function(t){return t.getTime()}),u=h.filter(function(i){return t<=i&&i<=e});return{major:u,minor:[]}},e}(r.SingleIntervalTicker);i.MonthsTicker=l,l.initClass()},function(t,e,i){var n=t(369),r=t(184),o=t(15),s=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"SingleIntervalTicker\",this.define({interval:[o.Number]})},e.prototype.get_interval=function(t,e,i){return this.interval},Object.defineProperty(e.prototype,\"min_interval\",{get:function(){return this.interval},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"max_interval\",{get:function(){return this.interval},enumerable:!0,configurable:!0}),e}(r.ContinuousTicker);i.SingleIntervalTicker=s,s.initClass()},function(t,e,i){var n=t(369),r=t(51),o=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"Ticker\"},e}(r.Model);i.Ticker=o,o.initClass()},function(t,e,i){function n(t){return new Date(t.getTime())}function r(t){var e=n(t);return e.setUTCDate(1),e.setUTCHours(0),e.setUTCMinutes(0),e.setUTCSeconds(0),e.setUTCMilliseconds(0),e}i.ONE_MILLI=1,i.ONE_SECOND=1e3,i.ONE_MINUTE=60*i.ONE_SECOND,i.ONE_HOUR=60*i.ONE_MINUTE,i.ONE_DAY=24*i.ONE_HOUR,i.ONE_MONTH=30*i.ONE_DAY,i.ONE_YEAR=365*i.ONE_DAY,i.copy_date=n,i.last_month_no_later_than=r,i.last_year_no_later_than=function(t){var e=r(t);return e.setUTCMonth(0),e}},function(t,e,i){var n=t(369),r=t(181),o=t(192),s=t(194),a=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"YearsTicker\"},e.prototype.initialize=function(){t.prototype.initialize.call(this),this.interval=s.ONE_YEAR,this.basic_ticker=new r.BasicTicker({num_minor_ticks:0})},e.prototype.get_ticks_no_defaults=function(t,e,i,n){var r=s.last_year_no_later_than(new Date(t)).getUTCFullYear(),o=s.last_year_no_later_than(new Date(e)).getUTCFullYear(),a=this.basic_ticker.get_ticks_no_defaults(r,o,i,n).major,l=a.map(function(t){return Date.UTC(t,0,1)}),h=l.filter(function(i){return t<=i&&i<=e});return{major:h,minor:[]}},e}(o.SingleIntervalTicker);i.YearsTicker=a,a.initClass()},function(t,e,i){var n=t(369),r=t(200),o=t(15),s=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"BBoxTileSource\",this.define({use_latlon:[o.Bool,!1]})},e.prototype.get_image_url=function(t,e,i){var n,r,o,s,a=this.string_lookup_replace(this.url,this.extra_url_vars);return this.use_latlon?(l=this.get_tile_geographic_bounds(t,e,i),r=l[0],s=l[1],n=l[2],o=l[3]):(h=this.get_tile_meter_bounds(t,e,i),r=h[0],s=h[1],n=h[2],o=h[3]),a.replace(\"{XMIN}\",r).replace(\"{YMIN}\",s).replace(\"{XMAX}\",n).replace(\"{YMAX}\",o);var l,h},e}(r.MercatorTileSource);i.BBoxTileSource=s,s.initClass()},function(t,e,i){var n=function(){function t(){this.images=[]}return t.prototype.pop=function(){var t=this.images.pop();return null!=t?t:new Image},t.prototype.push=function(t){if(!(this.images.length>50))return t.constructor===Array?Array.prototype.push.apply(this.images,t):this.images.push(t)},t}();i.ImagePool=n},function(t,e,i){var n=t(369),r=t(15),o=t(51),s=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"ImageSource\",this.define({url:[r.String,\"\"],extra_url_vars:[r.Any,{}]})},e.prototype.initialize=function(){t.prototype.initialize.call(this),this.images={},this.normalize_case()},e.prototype.normalize_case=function(){\"Note: should probably be refactored into subclasses.\";var t=this.url;return t=t.replace(\"{xmin}\",\"{XMIN}\"),t=t.replace(\"{ymin}\",\"{YMIN}\"),t=t.replace(\"{xmax}\",\"{XMAX}\"),t=t.replace(\"{ymax}\",\"{YMAX}\"),t=t.replace(\"{height}\",\"{HEIGHT}\"),t=t.replace(\"{width}\",\"{WIDTH}\"),this.url=t},e.prototype.string_lookup_replace=function(t,e){var i=t;for(var n in e){var r=e[n];i=i.replace(\"{\"+n+\"}\",r.toString())}return i},e.prototype.add_image=function(t){return this.images[t.cache_key]=t},e.prototype.remove_image=function(t){return delete this.images[t.cache_key]},e.prototype.get_image_url=function(t,e,i,n,r,o){var s=this.string_lookup_replace(this.url,this.extra_url_vars);return s.replace(\"{XMIN}\",t).replace(\"{YMIN}\",e).replace(\"{XMAX}\",i).replace(\"{YMAX}\",n).replace(\"{WIDTH}\",o).replace(\"{HEIGHT}\",r)},e}(o.Model);i.ImageSource=s,s.initClass()},function(t,e,i){var n=t(196);i.BBoxTileSource=n.BBoxTileSource;var r=t(198);i.ImageSource=r.ImageSource;var o=t(200);i.MercatorTileSource=o.MercatorTileSource;var s=t(201);i.QUADKEYTileSource=s.QUADKEYTileSource;var a=t(202);i.TileRenderer=a.TileRenderer;var l=t(203);i.TileSource=l.TileSource;var h=t(205);i.TMSTileSource=h.TMSTileSource;var u=t(206);i.WMTSTileSource=u.WMTSTileSource},function(t,e,i){var n=t(369),r=t(203),o=t(15),s=t(22),a=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"MercatorTileSource\",this.define({snap_to_zoom:[o.Bool,!1],wrap_around:[o.Bool,!0]}),this.override({x_origin_offset:20037508.34,y_origin_offset:20037508.34,initial_resolution:156543.03392804097})},e.prototype.initialize=function(){var e=this;t.prototype.initialize.call(this),this._resolutions=s.range(this.min_zoom,this.max_zoom+1).map(function(t){return e.get_resolution(t)})},e.prototype._computed_initial_resolution=function(){return null!=this.initial_resolution?this.initial_resolution:2*Math.PI*6378137/this.tile_size},e.prototype.is_valid_tile=function(t,e,i){return!(!this.wrap_around&&(t<0||t>=Math.pow(2,i)))&&!(e<0||e>=Math.pow(2,i))},e.prototype.retain_children=function(t){var e=t.quadkey,i=e.length,n=i+3;for(var r in this.tiles){var o=this.tiles[r];0===o.quadkey.indexOf(e)&&o.quadkey.length>i&&o.quadkey.length<=n&&(o.retain=!0)}},e.prototype.retain_neighbors=function(t){var e=t.tile_coords,i=e[0],n=e[1],r=e[2],o=s.range(i-4,i+4+1),a=s.range(n-4,n+4+1);for(var l in this.tiles){var h=this.tiles[l];h.tile_coords[2]===r&&s.includes(o,h.tile_coords[0])&&s.includes(a,h.tile_coords[1])&&(h.retain=!0)}},e.prototype.retain_parents=function(t){var e=t.quadkey;for(var i in this.tiles){var n=this.tiles[i];n.retain=0===e.indexOf(n.quadkey)}},e.prototype.parent_by_tile_xyz=function(t,e,i){var n=this.tile_xyz_to_quadkey(t,e,i),r=n.substring(0,n.length-1);return this.quadkey_to_tile_xyz(r)},e.prototype.get_resolution=function(t){return this._computed_initial_resolution()/Math.pow(2,t)},e.prototype.get_resolution_by_extent=function(t,e,i){var n=(t[2]-t[0])/i,r=(t[3]-t[1])/e;return[n,r]},e.prototype.get_level_by_extent=function(t,e,i){for(var n=(t[2]-t[0])/i,r=(t[3]-t[1])/e,o=Math.max(n,r),s=0,a=0,l=this._resolutions;ah){if(0===s)return 0;if(s>0)return s-1}s+=1}},e.prototype.get_closest_level_by_extent=function(t,e,i){var n=(t[2]-t[0])/i,r=(t[3]-t[1])/e,o=Math.max(n,r),s=this._resolutions.reduce(function(t,e){return Math.abs(e-o)_?(h=s-r,u*=c):(h*=_,u=a-o)}var p=(h-(s-r))/2,d=(u-(a-o))/2;return[r-p,o-d,s+p,a+d]},e.prototype.tms_to_wmts=function(t,e,i){\"Note this works both ways\";return[t,Math.pow(2,i)-1-e,i]},e.prototype.wmts_to_tms=function(t,e,i){\"Note this works both ways\";return[t,Math.pow(2,i)-1-e,i]},e.prototype.pixels_to_meters=function(t,e,i){var n=this.get_resolution(i),r=t*n-this.x_origin_offset,o=e*n-this.y_origin_offset;return[r,o]},e.prototype.meters_to_pixels=function(t,e,i){var n=this.get_resolution(i),r=(t+this.x_origin_offset)/n,o=(e+this.y_origin_offset)/n;return[r,o]},e.prototype.pixels_to_tile=function(t,e){var i=Math.ceil(t/parseFloat(this.tile_size));i=0===i?i:i-1;var n=Math.max(Math.ceil(e/parseFloat(this.tile_size))-1,0);return[i,n]},e.prototype.pixels_to_raster=function(t,e,i){var n=this.tile_size<=f;d--)for(var v=l,m=c;v<=m;v++)this.is_valid_tile(v,d,e)&&p.push([v,d,e,this.get_tile_meter_bounds(v,d,e)]);return p=this.sort_tiles_from_center(p,[l,h,c,_])},e.prototype.quadkey_to_tile_xyz=function(t){for(var e=0,i=0,n=t.length,r=n;r>0;r--){var o=t.charAt(n-r),s=1<0;r--){var o=0,s=1<0;)if(r=r.substring(0,r.length-1),s=this.quadkey_to_tile_xyz(r),t=s[0],e=s[1],i=s[2],a=this.denormalize_xyz(t,e,i,n),t=a[0],e=a[1],i=a[2],this.tile_xyz_to_key(t,e,i)in this.tiles)return[t,e,i];return[0,0,0];var o,s,a},e.prototype.normalize_xyz=function(t,e,i){if(this.wrap_around){var n=Math.pow(2,i);return[(t%n+n)%n,e,i]}return[t,e,i]},e.prototype.denormalize_xyz=function(t,e,i,n){return[t+n*Math.pow(2,i),e,i]},e.prototype.denormalize_meters=function(t,e,i,n){return[t+2*n*Math.PI*6378137,e]},e.prototype.calculate_world_x_by_tile_xyz=function(t,e,i){return Math.floor(t/Math.pow(2,i))},e}(r.TileSource);i.MercatorTileSource=a,a.initClass()},function(t,e,i){var n=t(369),r=t(200),o=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"QUADKEYTileSource\"},e.prototype.get_image_url=function(t,e,i){var n=this.string_lookup_replace(this.url,this.extra_url_vars);o=this.tms_to_wmts(t,e,i),t=o[0],e=o[1],i=o[2];var r=this.tile_xyz_to_quadkey(t,e,i);return n.replace(\"{Q}\",r);var o},e}(r.MercatorTileSource);i.QUADKEYTileSource=o,o.initClass()},function(t,e,i){var n=t(369),r=t(197),o=t(206),s=t(166),a=t(5),l=t(15),h=t(22),u=t(43),c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype.initialize=function(e){this.attributionEl=null,this._tiles=[],t.prototype.initialize.call(this,e)},e.prototype.connect_signals=function(){var e=this;t.prototype.connect_signals.call(this),this.connect(this.model.change,function(){return e.request_render()})},e.prototype.get_extent=function(){return[this.x_range.start,this.y_range.start,this.x_range.end,this.y_range.end]},e.prototype._set_data=function(){return this.pool=new r.ImagePool,this.map_plot=this.plot_model.plot,this.map_canvas=this.plot_view.canvas_view.ctx,this.map_frame=this.plot_model.frame,this.x_range=this.map_plot.x_range,this.y_range=this.map_plot.y_range,this.extent=this.get_extent(),this._last_height=void 0,this._last_width=void 0},e.prototype._add_attribution=function(){var t=this.model.tile_source.attribution;if(u.isString(t)&&t.length>0){if(null==this.attributionEl){var e=this.plot_model.canvas._right.value-this.plot_model.frame._right.value,i=this.plot_model.canvas._bottom.value-this.plot_model.frame._bottom.value,n=this.map_frame._width.value;this.attributionEl=a.div({class:\"bk-tile-attribution\",style:{position:\"absolute\",bottom:i+\"px\",right:e+\"px\",\"max-width\":n+\"px\",padding:\"2px\",\"background-color\":\"rgba(255,255,255,0.8)\",\"font-size\":\"9pt\",\"font-family\":\"sans-serif\"}});var r=this.plot_view.canvas_view.events_el;r.appendChild(this.attributionEl)}return this.attributionEl.innerHTML=t}},e.prototype._map_data=function(){this.initial_extent=this.get_extent();var t=this.model.tile_source.get_level_by_extent(this.initial_extent,this.map_frame._height.value,this.map_frame._width.value),e=this.model.tile_source.snap_to_zoom_level(this.initial_extent,this.map_frame._height.value,this.map_frame._width.value,t);return this.x_range.start=e[0],this.y_range.start=e[1],this.x_range.end=e[2],this.y_range.end=e[3],this._add_attribution()},e.prototype._on_tile_load=function(t){var e=t.target.tile_data;return e.img=t.target,e.current=!0,e.loaded=!0,this.request_render()},e.prototype._on_tile_cache_load=function(t){var e=t.target.tile_data;return e.img=t.target,e.loaded=!0,e.finished=!0,this.notify_finished()},e.prototype._on_tile_error=function(t){var e=t.target.tile_data;return e.finished=!0},e.prototype._create_tile=function(t,e,i,n,r){void 0===r&&(r=!1);var o=this.model.tile_source.normalize_xyz(t,e,i),s=this.pool.pop();s.onload=r?this._on_tile_cache_load.bind(this):this._on_tile_load.bind(this),s.onerror=this._on_tile_error.bind(this),s.alt=\"\",s.tile_data={tile_coords:[t,e,i],normalized_coords:o,quadkey:this.model.tile_source.tile_xyz_to_quadkey(t,e,i),cache_key:this.model.tile_source.tile_xyz_to_key(t,e,i),bounds:n,loaded:!1,finished:!1,x_coord:n[0],y_coord:n[3]},this.model.tile_source.tiles[s.tile_data.cache_key]=s.tile_data;var a=o[0],l=o[1],h=o[2];return s.src=this.model.tile_source.get_image_url(a,l,h),this._tiles.push(s),s},e.prototype._enforce_aspect_ratio=function(){if(this._last_height!==this.map_frame._height.value||this._last_width!==this.map_frame._width.value){var t=this.get_extent(),e=this.model.tile_source.get_level_by_extent(t,this.map_frame._height.value,this.map_frame._width.value),i=this.model.tile_source.snap_to_zoom_level(t,this.map_frame._height.value,this.map_frame._width.value,e);return this.x_range.setv({start:i[0],end:i[2]}),this.y_range.setv({start:i[1],end:i[3]}),this.extent=i,this._last_height=this.map_frame._height.value,this._last_width=this.map_frame._width.value,!0}return!1},e.prototype.has_finished=function(){if(!t.prototype.has_finished.call(this))return!1;if(0===this._tiles.length)return!1;for(var e=0,i=this._tiles;en&&(r=this.extent,l=n,u=!0),u&&(this.x_range.setv({x_range:{start:r[0],end:r[2]}}),this.y_range.setv({start:r[1],end:r[3]}),this.extent=r),this.extent=r;for(var c=e.get_tiles_by_extent(r,l),_=[],p=[],d=[],f=[],v=0,m=c;v=o?[1,_/o]:[o/_,1])[0];t[0]<=e[0]?(n=t[0],(r=t[0]+u*p)>s&&(r=s)):(r=t[0],(n=t[0]-u*p)l&&(d=l)):(d=t[1],(f=t[1]-u/o)o.end)&&(this.v_axis_only=!0),(ns.end)&&(this.h_axis_only=!0)}null!=this.model.document&&this.model.document.interactive_start(this.plot_model.plot)},e.prototype._pan=function(t){this._update(t.deltaX,t.deltaY),null!=this.model.document&&this.model.document.interactive_start(this.plot_model.plot)},e.prototype._pan_end=function(t){this.h_axis_only=!1,this.v_axis_only=!1,null!=this.pan_info&&this.plot_view.push_state(\"pan\",{range:this.pan_info})},e.prototype._update=function(t,e){var i,n,r,o=this.plot_model.frame,s=t-this.last_dx,a=e-this.last_dy,l=o.bbox.h_range,h=l.start-s,u=l.end-s,c=o.bbox.v_range,_=c.start-a,p=c.end-a,d=this.model.dimensions;\"width\"!=d&&\"both\"!=d||this.v_axis_only?(i=l.start,n=l.end,r=0):(i=h,n=u,r=-s);var f,v,m;\"height\"!=d&&\"both\"!=d||this.h_axis_only?(f=c.start,v=c.end,m=0):(f=_,v=p,m=-a),this.last_dx=t,this.last_dy=e;var g=o.xscales,y=o.yscales,b={};for(var x in g){var w=g[x],k=w.r_invert(i,n),S=k[0],T=k[1];b[x]={start:S,end:T}}var C={};for(var M in y){var w=y[M],A=w.r_invert(f,v),S=A[0],T=A[1];C[M]={start:S,end:T}}this.pan_info={xrs:b,yrs:C,sdx:r,sdy:m},this.plot_view.update_range(this.pan_info,!0)},e}(r.GestureToolView);i.PanToolView=s;var a=function(t){function e(e,i){var n=t.call(this,e,i)||this;return n.tool_name=\"Pan\",n.event_type=\"pan\",n.default_order=10,n}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"PanTool\",this.prototype.default_view=s,this.define({dimensions:[o.Dimensions,\"both\"]})},Object.defineProperty(e.prototype,\"tooltip\",{get:function(){return this._get_dim_tooltip(\"Pan\",this.dimensions)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"icon\",{get:function(){switch(this.dimensions){case\"both\":return\"bk-tool-icon-pan\";case\"width\":return\"bk-tool-icon-xpan\";case\"height\":return\"bk-tool-icon-ypan\"}},enumerable:!0,configurable:!0}),e}(r.GestureTool);i.PanTool=a,a.initClass()},function(t,e,i){var n=t(369),r=t(227),o=t(63),s=t(15),a=t(22),l=t(31),h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype.initialize=function(e){t.prototype.initialize.call(this,e),this.data={sx:[],sy:[]}},e.prototype.connect_signals=function(){var e=this;t.prototype.connect_signals.call(this),this.connect(this.model.properties.active.change,function(){return e._active_change()})},e.prototype._active_change=function(){this.model.active||this._clear_data()},e.prototype._keyup=function(t){13==t.keyCode&&this._clear_data()},e.prototype._doubletap=function(t){var e=t.srcEvent.shiftKey||!1;this._do_select(this.data.sx,this.data.sy,!0,e),this.plot_view.push_state(\"poly_select\",{selection:this.plot_view.get_selection()}),this._clear_data()},e.prototype._clear_data=function(){this.data={sx:[],sy:[]},this.model.overlay.update({xs:[],ys:[]})},e.prototype._tap=function(t){var e=t.bokeh,i=e.sx,n=e.sy,r=this.plot_model.frame;r.bbox.contains(i,n)&&(this.data.sx.push(i),this.data.sy.push(n),this.model.overlay.update({xs:a.copy(this.data.sx),ys:a.copy(this.data.sy)}))},e.prototype._do_select=function(t,e,i,n){var r={type:\"poly\",sx:t,sy:e};this._select(r,i,n)},e.prototype._emit_callback=function(t){var e=this.computed_renderers[0],i=this.plot_model.frame,n=i.xscales[e.x_range_name],r=i.yscales[e.y_range_name],o=n.v_invert(t.sx),s=r.v_invert(t.sy),a=l.extend({x:o,y:s},t);this.model.callback.execute(this.model,{geometry:a})},e}(r.SelectToolView);i.PolySelectToolView=h;var u=function(){return new o.PolyAnnotation({level:\"overlay\",xs_units:\"screen\",ys_units:\"screen\",fill_color:{value:\"lightgrey\"},fill_alpha:{value:.5},line_color:{value:\"black\"},line_alpha:{value:1},line_width:{value:2},line_dash:{value:[4,4]}})},c=function(t){function e(e,i){var n=t.call(this,e,i)||this;return n.tool_name=\"Poly Select\",n.icon=\"bk-tool-icon-polygon-select\",n.event_type=\"tap\",n.default_order=11,n}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"PolySelectTool\",this.prototype.default_view=h,this.define({callback:[s.Instance],overlay:[s.Instance,u]})},e}(r.SelectTool);i.PolySelectTool=c,c.initClass()},function(t,e,i){var n=t(369),r=t(223),o=t(162),s=t(163),a=t(15),l=t(31),h=t(22),u=t(3),c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),Object.defineProperty(e.prototype,\"computed_renderers\",{get:function(){var t=this.model.renderers,e=this.model.names;if(0==t.length){var i=this.plot_model.plot.renderers;t=i.filter(function(t){return t instanceof o.GlyphRenderer||t instanceof s.GraphRenderer})}return e.length>0&&(t=t.filter(function(t){return h.includes(e,t.name)})),t},enumerable:!0,configurable:!0}),e.prototype._computed_renderers_by_data_source=function(){for(var t={},e=0,i=this.computed_renderers;e.9?e=.9:e<-.9&&(e=-.9),this._update_ranges(e)},e.prototype._update_ranges=function(t){var e,i,n,r,o=this.plot_model.frame,s=o.bbox.h_range,a=o.bbox.v_range,l=[s.start,s.end],h=l[0],u=l[1],c=[a.start,a.end],_=c[0],p=c[1];switch(this.model.dimension){case\"height\":var d=Math.abs(p-_);e=h,i=u,n=_-d*t,r=p-d*t;break;case\"width\":var f=Math.abs(u-h);e=h-f*t,i=u-f*t,n=_,r=p;break;default:throw new Error(\"this shouldn't have happened\")}var v=o.xscales,m=o.yscales,g={};for(var y in v){var b=v[y],x=b.r_invert(e,i),w=x[0],k=x[1];g[y]={start:w,end:k}}var S={};for(var T in m){var b=m[T],C=b.r_invert(n,r),w=C[0],k=C[1];S[T]={start:w,end:k}}var M={xrs:g,yrs:S,factor:t};this.plot_view.push_state(\"wheel_pan\",{range:M}),this.plot_view.update_range(M,!1,!0),null!=this.model.document&&this.model.document.interactive_start(this.plot_model.plot)},e}(r.GestureToolView);i.WheelPanToolView=s;var a=function(t){function e(e,i){var n=t.call(this,e,i)||this;return n.tool_name=\"Wheel Pan\",n.icon=\"bk-tool-icon-wheel-pan\",n.event_type=\"scroll\",n.default_order=12,n}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"WheelPanTool\",this.prototype.default_view=s,this.define({dimension:[o.Dimension,\"width\"]}),this.internal({speed:[o.Number,.001]})},Object.defineProperty(e.prototype,\"tooltip\",{get:function(){return this._get_dim_tooltip(this.tool_name,this.dimension)},enumerable:!0,configurable:!0}),e}(r.GestureTool);i.WheelPanTool=a,a.initClass()},function(t,e,i){var n=t(369),r=t(223),o=t(45),s=t(15),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype._pinch=function(t){var e;e=t.scale>=1?20*(t.scale-1):-20/t.scale,t.bokeh.delta=e,this._scroll(t)},e.prototype._scroll=function(t){var e=this.plot_model.frame,i=e.bbox.h_range,n=e.bbox.v_range,r=t.bokeh,s=r.sx,a=r.sy,l=this.model.dimensions,h=(\"width\"==l||\"both\"==l)&&i.start0,h=function(t){function e(e,i){var n=t.call(this,e,i)||this;return n.tool_name=\"Wheel Zoom\",n.icon=\"bk-tool-icon-wheel-zoom\",n.event_type=l?\"pinch\":\"scroll\",n.default_order=10,n}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"WheelZoomTool\",this.prototype.default_view=a,this.define({dimensions:[s.Dimensions,\"both\"]}),this.internal({speed:[s.Number,1/600]})},Object.defineProperty(e.prototype,\"tooltip\",{get:function(){return this._get_dim_tooltip(this.tool_name,this.dimensions)},enumerable:!0,configurable:!0}),e}(r.GestureTool);i.WheelZoomTool=h,h.initClass()},function(t,e,i){var n=t(207);i.ActionTool=n.ActionTool;var r=t(208);i.HelpTool=r.HelpTool;var o=t(209);i.RedoTool=o.RedoTool;var s=t(210);i.ResetTool=s.ResetTool;var a=t(211);i.SaveTool=a.SaveTool;var l=t(212);i.UndoTool=l.UndoTool;var h=t(213);i.ZoomInTool=h.ZoomInTool;var u=t(214);i.ZoomOutTool=u.ZoomOutTool;var c=t(215);i.ButtonTool=c.ButtonTool;var _=t(217);i.EditTool=_.EditTool;var p=t(216);i.BoxEditTool=p.BoxEditTool;var d=t(218);i.PointDrawTool=d.PointDrawTool;var f=t(219);i.PolyDrawTool=f.PolyDrawTool;var v=t(220);i.PolyEditTool=v.PolyEditTool;var m=t(221);i.BoxSelectTool=m.BoxSelectTool;var g=t(222);i.BoxZoomTool=g.BoxZoomTool;var y=t(223);i.GestureTool=y.GestureTool;var b=t(224);i.LassoSelectTool=b.LassoSelectTool;var x=t(225);i.PanTool=x.PanTool;var w=t(226);i.PolySelectTool=w.PolySelectTool;var k=t(227);i.SelectTool=k.SelectTool;var S=t(228);i.TapTool=S.TapTool;var T=t(229);i.WheelPanTool=T.WheelPanTool;var C=t(230);i.WheelZoomTool=C.WheelZoomTool;var M=t(232);i.CrosshairTool=M.CrosshairTool;var A=t(233);i.HoverTool=A.HoverTool;var E=t(234);i.InspectTool=E.InspectTool;var z=t(236);i.Tool=z.Tool;var O=t(237);i.ToolProxy=O.ToolProxy;var P=t(238);i.Toolbar=P.Toolbar;var j=t(239);i.ToolbarBase=j.ToolbarBase;var N=t(240);i.ProxyToolbar=N.ProxyToolbar;var D=t(240);i.ToolbarBox=D.ToolbarBox},function(t,e,i){var n=t(369),r=t(234),o=t(64),s=t(15),a=t(31),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype._move=function(t){if(this.model.active){var e=t.bokeh,i=e.sx,n=e.sy;this.plot_model.frame.bbox.contains(i,n)?this._update_spans(i,n):this._update_spans(null,null)}},e.prototype._move_exit=function(t){this._update_spans(null,null)},e.prototype._update_spans=function(t,e){var i=this.model.dimensions;\"width\"!=i&&\"both\"!=i||(this.model.spans.width.computed_location=e),\"height\"!=i&&\"both\"!=i||(this.model.spans.height.computed_location=t)},e}(r.InspectToolView);i.CrosshairToolView=l;var h=function(t){function e(e,i){var n=t.call(this,e,i)||this;return n.tool_name=\"Crosshair\",n.icon=\"bk-tool-icon-crosshair\",n}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"CrosshairTool\",this.prototype.default_view=l,this.define({dimensions:[s.Dimensions,\"both\"],line_color:[s.Color,\"black\"],line_width:[s.Number,1],line_alpha:[s.Number,1]}),this.internal({location_units:[s.SpatialUnits,\"screen\"],render_mode:[s.RenderMode,\"css\"],spans:[s.Any]})},Object.defineProperty(e.prototype,\"tooltip\",{get:function(){return this._get_dim_tooltip(\"Crosshair\",this.dimensions)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"synthetic_renderers\",{get:function(){return a.values(this.spans)},enumerable:!0,configurable:!0}),e.prototype.initialize=function(){t.prototype.initialize.call(this),this.spans={width:new o.Span({for_hover:!0,dimension:\"width\",render_mode:this.render_mode,location_units:this.location_units,line_color:this.line_color,line_width:this.line_width,line_alpha:this.line_alpha}),height:new o.Span({for_hover:!0,dimension:\"height\",render_mode:this.render_mode,location_units:this.location_units,line_color:this.line_color,line_width:this.line_width,line_alpha:this.line_alpha})}},e}(r.InspectTool);i.CrosshairTool=h,h.initClass()},function(t,e,i){function n(t,e,i,n,r,o){var s,a,l=r[t],h=o[t],c=r[t+1],_=o[t+1];return\"span\"==e.type?\"h\"==e.direction?(s=Math.abs(l-i),a=Math.abs(c-i)):(s=Math.abs(h-n),a=Math.abs(_-n)):(s=u.dist_2_pts(l,h,i,n),a=u.dist_2_pts(c,_,i,n)),s0&&(t=t.filter(function(t){return f.includes(e,t.name)})),t},e.prototype._compute_ttmodels=function(){var t={},e=this.model.tooltips;if(null!=e)for(var i=0,n=this.computed_renderers;i=0){var v=u.match(/\\$color(\\[.*\\])?:(\\w*)/),g=v[1],y=void 0===g?\"\":g,b=v[2],x=t.get_column(b);if(null==x){var w=_.span({},b+\" unknown\");f.appendChild(w);continue}var k=y.indexOf(\"hex\")>=0,S=y.indexOf(\"swatch\")>=0,T=x[e];if(null==T){var C=_.span({},\"(null)\");f.appendChild(C);continue}k&&(T=d.color2hex(T));var r=_.span({},T);f.appendChild(r),S&&(r=_.span({class:\"bk-tooltip-color-block\",style:{backgroundColor:T}},\" \"),f.appendChild(r))}else{var r=_.span();r.innerHTML=c.replace_placeholders(u.replace(\"$~\",\"$data_\"),t,e,this.model.formatters,i),f.appendChild(r)}}return o},e}(s.InspectToolView);i.HoverToolView=y;var b=function(t){function e(e,i){var n=t.call(this,e,i)||this;return n.tool_name=\"Hover\",n.icon=\"bk-tool-icon-hover\",n}return o.__extends(e,t),e.initClass=function(){this.prototype.type=\"HoverTool\",this.prototype.default_view=y,this.define({tooltips:[p.Any,[[\"index\",\"$index\"],[\"data (x, y)\",\"($x, $y)\"],[\"screen (x, y)\",\"($sx, $sy)\"]]],formatters:[p.Any,{}],renderers:[p.Array,[]],names:[p.Array,[]],mode:[p.String,\"mouse\"],point_policy:[p.String,\"snap_to_data\"],line_policy:[p.String,\"nearest\"],show_arrow:[p.Boolean,!0],anchor:[p.String,\"center\"],attachment:[p.String,\"horizontal\"],callback:[p.Any]})},e}(s.InspectTool);i.HoverTool=b,b.initClass()},function(t,e,i){var n=t(369),r=t(215),o=t(235),s=t(15),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e}(r.ButtonToolView);i.InspectToolView=a;var l=function(t){function e(e,i){var n=t.call(this,e,i)||this;return n.event_type=\"move\",n}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"InspectTool\",this.prototype.button_view=o.OnOffButtonView,this.define({toggleable:[s.Bool,!0]}),this.override({active:!0})},e}(r.ButtonTool);i.InspectTool=l,l.initClass()},function(t,e,i){var n=t(369),r=t(215),o=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype.render=function(){t.prototype.render.call(this),this.model.active?this.el.classList.add(\"bk-active\"):this.el.classList.remove(\"bk-active\")},e.prototype._clicked=function(){var t=this.model.active;this.model.active=!t},e}(r.ButtonToolButtonView);i.OnOffButtonView=o},function(t,e,i){var n=t(369),r=t(15),o=t(46),s=t(22),a=t(51),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype.initialize=function(e){t.prototype.initialize.call(this,e),this.plot_view=e.plot_view},Object.defineProperty(e.prototype,\"plot_model\",{get:function(){return this.plot_view.model},enumerable:!0,configurable:!0}),e.prototype.connect_signals=function(){var e=this;t.prototype.connect_signals.call(this),this.connect(this.model.properties.active.change,function(){e.model.active?e.activate():e.deactivate()})},e.prototype.activate=function(){},e.prototype.deactivate=function(){},e}(o.View);i.ToolView=l;var h=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"Tool\",this.internal({active:[r.Boolean,!1]})},Object.defineProperty(e.prototype,\"synthetic_renderers\",{get:function(){return[]},enumerable:!0,configurable:!0}),e.prototype._get_dim_tooltip=function(t,e){switch(e){case\"width\":return t+\" (x-axis)\";case\"height\":return t+\" (y-axis)\";case\"both\":return t}},e.prototype._get_dim_limits=function(t,e,i,n){var r,o=t[0],a=t[1],l=e[0],h=e[1],u=i.bbox.h_range;\"width\"==n||\"both\"==n?(r=[s.min([o,l]),s.max([o,l])],r=[s.max([r[0],u.start]),s.min([r[1],u.end])]):r=[u.start,u.end];var c,_=i.bbox.v_range;return\"height\"==n||\"both\"==n?(c=[s.min([a,h]),s.max([a,h])],c=[s.max([c[0],_.start]),s.min([c[1],_.end])]):c=[_.start,_.end],[r,c]},e}(a.Model);i.Tool=h,h.initClass()},function(t,e,i){var n=t(369),r=t(15),o=t(20),s=t(51),a=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"ToolProxy\",this.define({tools:[r.Array,[]],active:[r.Bool,!1],disabled:[r.Bool,!1]})},Object.defineProperty(e.prototype,\"button_view\",{get:function(){return this.tools[0].button_view},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"event_type\",{get:function(){return this.tools[0].event_type},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"tooltip\",{get:function(){return this.tools[0].tool_name},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"tool_name\",{get:function(){return this.tools[0].tool_name},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"icon\",{get:function(){return this.tools[0].icon},enumerable:!0,configurable:!0}),e.prototype.initialize=function(){t.prototype.initialize.call(this),this.do=new o.Signal(this,\"do\")},e.prototype.connect_signals=function(){t.prototype.connect_signals.call(this),this.connect(this.do,function(){return this.doit()}),this.connect(this.properties.active.change,function(){return this.set_active()})},e.prototype.doit=function(){for(var t=0,e=this.tools;t0){var k=x(t);this.gestures[c].tools.push(k),this.connect(k.properties.active.change,this._active_change.bind(this,k))}}this.actions=[];for(var w in n)(t=n[w]).length>0&&this.actions.push(x(t));this.inspectors=[];for(var w in i)(t=i[w]).length>0&&this.inspectors.push(x(t,!0));for(var S in this.gestures)0!==(t=this.gestures[S].tools).length&&(this.gestures[S].tools=a.sortBy(t,function(t){return t.default_order}),\"pinch\"!=S&&\"scroll\"!=S&&\"multi\"!=S&&(this.gestures[S].tools[0].active=!0));var T},e}(_.ToolbarBase);i.ProxyToolbar=v,v.initClass();var m=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype.initialize=function(e){t.prototype.initialize.call(this,e),this.model.toolbar.toolbar_location=this.model.toolbar_location,this._toolbar_views={},f.build_views(this._toolbar_views,[this.model.toolbar],{parent:this})},e.prototype.remove=function(){f.remove_views(this._toolbar_views),t.prototype.remove.call(this)},e.prototype.css_classes=function(){return t.prototype.css_classes.call(this).concat(\"bk-toolbar-box\")},e.prototype.render=function(){t.prototype.render.call(this);var e=this._toolbar_views[this.model.toolbar.id];return e.render(),o.empty(this.el),this.el.appendChild(e.el)},e.prototype.get_width=function(){return this.model.toolbar.vertical?30:null},e.prototype.get_height=function(){return this.model.toolbar.horizontal?30:null},e}(d.LayoutDOMView);i.ToolbarBoxView=m;var g=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"ToolbarBox\",this.prototype.default_view=m,this.define({toolbar:[r.Instance],toolbar_location:[r.Location,\"right\"]})},Object.defineProperty(e.prototype,\"sizing_mode\",{get:function(){switch(this.toolbar_location){case\"above\":case\"below\":return\"scale_width\";case\"left\":case\"right\":return\"scale_height\"}},enumerable:!0,configurable:!0}),e}(d.LayoutDOM);i.ToolbarBox=g,g.initClass()},function(t,e,i){var n=t(369),r=t(248),o=t(15),s=t(31),a=function(e){function r(t,i){return e.call(this,t,i)||this}return n.__extends(r,e),r.initClass=function(){this.prototype.type=\"CustomJSTransform\",this.define({args:[o.Any,{}],func:[o.String,\"\"],v_func:[o.String,\"\"]})},Object.defineProperty(r.prototype,\"values\",{get:function(){return this._make_values()},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,\"scalar_transform\",{get:function(){return this._make_transform(\"x\",this.func)},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,\"vector_transform\",{get:function(){return this._make_transform(\"xs\",this.v_func)},enumerable:!0,configurable:!0}),r.prototype.compute=function(e){return this.scalar_transform.apply(this,this.values.concat([e,t,i]))},r.prototype.v_compute=function(e){return this.vector_transform.apply(this,this.values.concat([e,t,i]))},r.prototype._make_transform=function(t,e){return new(Function.bind.apply(Function,[void 0].concat(Object.keys(this.args),[t,\"require\",\"exports\",e])))},r.prototype._make_values=function(){return s.values(this.args)},r}(r.Transform);i.CustomJSTransform=a,a.initClass()},function(t,e,i){var n=t(369),r=t(248),o=t(15),s=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"Dodge\",this.define({value:[o.Number,0],range:[o.Instance]})},e.prototype.compute=function(t,e){return void 0===e&&(e=!0),null!=(null!=this.range?this.range.synthetic:void 0)&&e&&(t=this.range.synthetic(t)),t+this.value},e}(r.Transform);i.Dodge=s,s.initClass()},function(t,e,i){var n=t(241);i.CustomJSTransform=n.CustomJSTransform;var r=t(242);i.Dodge=r.Dodge;var o=t(244);i.Interpolator=o.Interpolator;var s=t(245);i.Jitter=s.Jitter;var a=t(246);i.LinearInterpolator=a.LinearInterpolator;var l=t(247);i.StepInterpolator=l.StepInterpolator;var h=t(248);i.Transform=h.Transform},function(t,e,i){var n=t(369),r=t(248),o=t(15),s=t(22),a=function(t){function e(e,i){return t.call(this,e,i)||this}return n.__extends(e,t),e.initClass=function(){this.prototype.type=\"Interpolator\",this.define({x:[o.Any],y:[o.Any],data:[o.Any],clip:[o.Bool,!0]})},e.prototype.initialize=function(){t.prototype.initialize.call(this),this._x_sorted=[],this._y_sorted=[],this._sorted_dirty=!0},e.prototype.connect_signals=function(){var e=this;t.prototype.connect_signals.call(this),this.connect(this.change,function(){return e._sorted_dirty=!0})},e.prototype.sort=function(t){if(void 0===t&&(t=!1),typeof this.x!=typeof this.y)throw new Error(\"The parameters for x and y must be of the same type, either both strings which define a column in the data source or both arrays of the same length\");if(\"string\"==typeof this.x&&null===this.data)throw new Error(\"If the x and y parameters are not specified as an array, the data parameter is reqired.\");if(!1!==this._sorted_dirty){var e=[],i=[];if(\"string\"==typeof this.x){var n=this.data,r=n.columns();if(!s.includes(r,this.x))throw new Error(\"The x parameter does not correspond to a valid column name defined in the data parameter\");if(!s.includes(r,this.y))throw new Error(\"The x parameter does not correspond to a valid column name defined in the data parameter\");e=n.get_column(this.x),i=n.get_column(this.y)}else e=this.x,i=this.y;if(e.length!==i.length)throw new Error(\"The length for x and y do not match\");if(e.length<2)throw new Error(\"x and y must have at least two elements to support interpolation\");var o=[];for(var a in e)o.push({x:e[a],y:i[a]});!0===t?o.sort(function(t,e){var i,n;return null!=(i=t.xe.x)?i:-{1:null!=(n=t.x===e.x)?n:{0:1}}});for(var l=0,h=o.length;lthis._x_sorted[this._x_sorted.length-1])return null}else{if(tthis._x_sorted[this._x_sorted.length-1])return this._y_sorted[this._y_sorted.length-1]}if(t===this._x_sorted[0])return this._y_sorted[0];var e=r.findLastIndex(this._x_sorted,function(e){return ethis._x_sorted[this._x_sorted.length-1])return null}else{if(tthis._x_sorted[this._x_sorted.length-1])return this._y_sorted[this._y_sorted.length-1]}var e=-1;if(\"after\"===this.mode&&(e=s.findLastIndex(this._x_sorted,function(e){return t>=e})),\"before\"===this.mode&&(e=s.findIndex(this._x_sorted,function(e){return t<=e})),\"center\"===this.mode){var i=this._x_sorted.map(function(e){return Math.abs(e-t)}),n=s.min(i);e=s.findIndex(i,function(t){return n===t})}return-1!==e?this._y_sorted[e]:null},e.prototype.v_compute=function(t){for(var e=new Float64Array(t.length),i=0;i=1<<28)throw new RangeError(\"repeat count must not overflow maximum string size\");for(var i=\"\";1==(1&t)&&(i+=e),0!=(t>>>=1);)e+=e;return i}),Array.from||(Array.from=function(){var t=Object.prototype.toString,e=function(e){return\"function\"==typeof e||\"[object Function]\"===t.call(e)},i=Math.pow(2,53)-1,n=function(t){var e=function(t){var e=Number(t);if(isNaN(e))return 0;if(0===e||!isFinite(e))return e;return(e>0?1:-1)*Math.floor(Math.abs(e))}(t);return Math.min(Math.max(e,0),i)};return function(t){var i=Object(t);if(null==t)throw new TypeError(\"Array.from requires an array-like object - not null or undefined\");var r,o=arguments.length>1?arguments[1]:void 0;if(void 0!==o){if(!e(o))throw new TypeError(\"Array.from: when provided, the second argument must be a function\");arguments.length>2&&(r=arguments[2])}for(var s=n(i.length),a=e(this)?Object(new this(s)):new Array(s),l=0;l0)throw new Error(\"BokehJS only supports receiving buffers, not sending\");var i=JSON.stringify(this.header),n=JSON.stringify(this.metadata),r=JSON.stringify(this.content);t.send(i),t.send(n),t.send(r)},t.prototype.msgid=function(){return this.header.msgid},t.prototype.msgtype=function(){return this.header.msgtype},t.prototype.reqid=function(){return this.header.reqid},t.prototype.problem=function(){return\"msgid\"in this.header?\"msgtype\"in this.header?null:\"No msgtype in header\":\"No msgid in header\"},t}();i.Message=r},function(t,e,i){var n=t(250),r=function(){function t(){this.message=null,this._partial=null,this._fragments=[],this._buf_header=null,this._current_consumer=this._HEADER}return t.prototype.consume=function(t){this._current_consumer(t)},t.prototype._HEADER=function(t){this._assume_text(t),this.message=null,this._partial=null,this._fragments=[t],this._buf_header=null,this._current_consumer=this._METADATA},t.prototype._METADATA=function(t){this._assume_text(t),this._fragments.push(t),this._current_consumer=this._CONTENT},t.prototype._CONTENT=function(t){this._assume_text(t),this._fragments.push(t);var e=this._fragments.slice(0,3),i=e[0],r=e[1],o=e[2];this._partial=n.Message.assemble(i,r,o),this._check_complete()},t.prototype._BUFFER_HEADER=function(t){this._assume_text(t),this._buf_header=t,this._current_consumer=this._BUFFER_PAYLOAD},t.prototype._BUFFER_PAYLOAD=function(t){this._assume_binary(t),this._partial.assemble_buffer(this._buf_header,t),this._check_complete()},t.prototype._assume_text=function(t){if(t instanceof ArrayBuffer)throw new Error(\"Expected text fragment but received binary fragment\")},t.prototype._assume_binary=function(t){if(!(t instanceof ArrayBuffer))throw new Error(\"Expected binary fragment but received text fragment\")},t.prototype._check_complete=function(){this._partial.complete()?(this.message=this._partial,this._current_consumer=this._HEADER):this._current_consumer=this._BUFFER_HEADER},t}();i.Receiver=r},function(t,e,i){i.safely=function(t,e){void 0===e&&(e=!1);try{return t()}catch(t){if(function(t){var e=document.createElement(\"div\");e.style.backgroundColor=\"#f2dede\",e.style.border=\"1px solid #a94442\",e.style.borderRadius=\"4px\",e.style.display=\"inline-block\",e.style.fontFamily=\"sans-serif\",e.style.marginTop=\"5px\",e.style.minWidth=\"200px\",e.style.padding=\"5px 5px 5px 10px\";var i=document.createElement(\"span\");i.style.backgroundColor=\"#a94442\",i.style.borderRadius=\"0px 4px 0px 0px\",i.style.color=\"white\",i.style.cursor=\"pointer\",i.style.cssFloat=\"right\",i.style.fontSize=\"0.8em\",i.style.margin=\"-6px -6px 0px 0px\",i.style.padding=\"2px 5px 4px 5px\",i.title=\"close\",i.setAttribute(\"aria-label\",\"close\"),i.appendChild(document.createTextNode(\"x\")),i.addEventListener(\"click\",function(){return o.removeChild(e)});var n=document.createElement(\"h3\");n.style.color=\"#a94442\",n.style.margin=\"8px 0px 0px 0px\",n.style.padding=\"0px\",n.appendChild(document.createTextNode(\"Bokeh Error\"));var r=document.createElement(\"pre\");r.style.whiteSpace=\"unset\",r.style.overflowX=\"auto\",r.appendChild(document.createTextNode(t.message||t)),e.appendChild(i),e.appendChild(n),e.appendChild(r);var o=document.getElementsByTagName(\"body\")[0];o.insertBefore(e,o.firstChild)}(t),e)return;throw t}}},function(t,e,i){i.version=\"0.12.14\"},/*!!\n", " * Canvas 2 Svg v1.0.21\n", " * A low level canvas to SVG converter. Uses a mock canvas context to build an SVG document.\n", " *\n", " * Licensed under the MIT license:\n", " * http://www.opensource.org/licenses/mit-license.php\n", " *\n", " * Author:\n", " * Kerry Liu\n", " *\n", " * Copyright (c) 2014 Gliffy Inc.\n", " */\n", " function(t,e,i){!function(){\"use strict\";function t(t,e){var i,n=Object.keys(e);for(i=0;i1?((e=i).width=arguments[0],e.height=arguments[1]):e=t||i,!(this instanceof r))return new r(e);this.width=e.width||i.width,this.height=e.height||i.height,this.enableMirroring=void 0!==e.enableMirroring?e.enableMirroring:i.enableMirroring,this.canvas=this,this.__document=e.document||document,e.ctx?this.__ctx=e.ctx:(this.__canvas=this.__document.createElement(\"canvas\"),this.__ctx=this.__canvas.getContext(\"2d\")),this.__setDefaultStyles(),this.__stack=[this.__getStyleState()],this.__groupStack=[],this.__root=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\"),this.__root.setAttribute(\"version\",1.1),this.__root.setAttribute(\"xmlns\",\"http://www.w3.org/2000/svg\"),this.__root.setAttributeNS(\"http://www.w3.org/2000/xmlns/\",\"xmlns:xlink\",\"http://www.w3.org/1999/xlink\"),this.__root.setAttribute(\"width\",this.width),this.__root.setAttribute(\"height\",this.height),this.__ids={},this.__defs=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"defs\"),this.__root.appendChild(this.__defs),this.__currentElement=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"),this.__root.appendChild(this.__currentElement)}).prototype.__createElement=function(t,e,i){void 0===e&&(e={});var n,r,o=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",t),s=Object.keys(e);for(i&&(o.setAttribute(\"fill\",\"none\"),o.setAttribute(\"stroke\",\"none\")),n=0;n0){\"path\"===this.__currentElement.nodeName&&(this.__currentElementsToStyle||(this.__currentElementsToStyle={element:e,children:[]}),this.__currentElementsToStyle.children.push(this.__currentElement),this.__applyCurrentDefaultPath());var i=this.__createElement(\"g\");e.appendChild(i),this.__currentElement=i}var n=this.__currentElement.getAttribute(\"transform\");n?n+=\" \":n=\"\",n+=t,this.__currentElement.setAttribute(\"transform\",n)},r.prototype.scale=function(e,i){void 0===i&&(i=e),this.__addTransform(t(\"scale({x},{y})\",{x:e,y:i}))},r.prototype.rotate=function(e){var i=180*e/Math.PI;this.__addTransform(t(\"rotate({angle},{cx},{cy})\",{angle:i,cx:0,cy:0}))},r.prototype.translate=function(e,i){this.__addTransform(t(\"translate({x},{y})\",{x:e,y:i}))},r.prototype.transform=function(e,i,n,r,o,s){this.__addTransform(t(\"matrix({a},{b},{c},{d},{e},{f})\",{a:e,b:i,c:n,d:r,e:o,f:s}))},r.prototype.beginPath=function(){var t;this.__currentDefaultPath=\"\",this.__currentPosition={},t=this.__createElement(\"path\",{},!0),this.__closestGroupOrSvg().appendChild(t),this.__currentElement=t},r.prototype.__applyCurrentDefaultPath=function(){var t=this.__currentElement;\"path\"===t.nodeName?t.setAttribute(\"d\",this.__currentDefaultPath):console.error(\"Attempted to apply path command to node\",t.nodeName)},r.prototype.__addPathCommand=function(t){this.__currentDefaultPath+=\" \",this.__currentDefaultPath+=t},r.prototype.moveTo=function(e,i){\"path\"!==this.__currentElement.nodeName&&this.beginPath(),this.__currentPosition={x:e,y:i},this.__addPathCommand(t(\"M {x} {y}\",{x:e,y:i}))},r.prototype.closePath=function(){this.__currentDefaultPath&&this.__addPathCommand(\"Z\")},r.prototype.lineTo=function(e,i){this.__currentPosition={x:e,y:i},this.__currentDefaultPath.indexOf(\"M\")>-1?this.__addPathCommand(t(\"L {x} {y}\",{x:e,y:i})):this.__addPathCommand(t(\"M {x} {y}\",{x:e,y:i}))},r.prototype.bezierCurveTo=function(e,i,n,r,o,s){this.__currentPosition={x:o,y:s},this.__addPathCommand(t(\"C {cp1x} {cp1y} {cp2x} {cp2y} {x} {y}\",{cp1x:e,cp1y:i,cp2x:n,cp2y:r,x:o,y:s}))},r.prototype.quadraticCurveTo=function(e,i,n,r){this.__currentPosition={x:n,y:r},this.__addPathCommand(t(\"Q {cpx} {cpy} {x} {y}\",{cpx:e,cpy:i,x:n,y:r}))};var l=function(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]/e,t[1]/e]};r.prototype.arcTo=function(t,e,i,n,r){var o=this.__currentPosition&&this.__currentPosition.x,s=this.__currentPosition&&this.__currentPosition.y;if(void 0!==o&&void 0!==s){if(r<0)throw new Error(\"IndexSizeError: The radius provided (\"+r+\") is negative.\");if(o===t&&s===e||t===i&&e===n||0===r)this.lineTo(t,e);else{var a=l([o-t,s-e]),h=l([i-t,n-e]);if(a[0]*h[1]!=a[1]*h[0]){var u=a[0]*h[0]+a[1]*h[1],c=Math.acos(Math.abs(u)),_=l([a[0]+h[0],a[1]+h[1]]),p=r/Math.sin(c/2),d=t+p*_[0],f=e+p*_[1],v=[-a[1],a[0]],m=[h[1],-h[0]],g=function(t){var e=t[0],i=t[1];return i>=0?Math.acos(e):-Math.acos(e)},y=g(v),b=g(m);this.lineTo(d+v[0]*r,f+v[1]*r),this.arc(d,f,r,y,b)}else this.lineTo(t,e)}}},r.prototype.stroke=function(){\"path\"===this.__currentElement.nodeName&&this.__currentElement.setAttribute(\"paint-order\",\"fill stroke markers\"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement(\"stroke\")},r.prototype.fill=function(){\"path\"===this.__currentElement.nodeName&&this.__currentElement.setAttribute(\"paint-order\",\"stroke fill markers\"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement(\"fill\")},r.prototype.rect=function(t,e,i,n){\"path\"!==this.__currentElement.nodeName&&this.beginPath(),this.moveTo(t,e),this.lineTo(t+i,e),this.lineTo(t+i,e+n),this.lineTo(t,e+n),this.lineTo(t,e),this.closePath()},r.prototype.fillRect=function(t,e,i,n){var r;r=this.__createElement(\"rect\",{x:t,y:e,width:i,height:n},!0),this.__closestGroupOrSvg().appendChild(r),this.__currentElement=r,this.__applyStyleToCurrentElement(\"fill\")},r.prototype.strokeRect=function(t,e,i,n){var r;r=this.__createElement(\"rect\",{x:t,y:e,width:i,height:n},!0),this.__closestGroupOrSvg().appendChild(r),this.__currentElement=r,this.__applyStyleToCurrentElement(\"stroke\")},r.prototype.__clearCanvas=function(){for(var t=this.__closestGroupOrSvg(),e=t.getAttribute(\"transform\"),i=this.__root.childNodes[1],n=i.childNodes,r=n.length-1;r>=0;r--)n[r]&&i.removeChild(n[r]);this.__currentElement=i,this.__groupStack=[],e&&this.__addTransform(e)},r.prototype.clearRect=function(t,e,i,n){if(0!==t||0!==e||i!==this.width||n!==this.height){var r,o=this.__closestGroupOrSvg();r=this.__createElement(\"rect\",{x:t,y:e,width:i,height:n,fill:\"#FFFFFF\"},!0),o.appendChild(r)}else this.__clearCanvas()},r.prototype.createLinearGradient=function(t,e,n,r){var s=this.__createElement(\"linearGradient\",{id:i(this.__ids),x1:t+\"px\",x2:n+\"px\",y1:e+\"px\",y2:r+\"px\",gradientUnits:\"userSpaceOnUse\"},!1);return this.__defs.appendChild(s),new o(s,this)},r.prototype.createRadialGradient=function(t,e,n,r,s,a){var l=this.__createElement(\"radialGradient\",{id:i(this.__ids),cx:r+\"px\",cy:s+\"px\",r:a+\"px\",fx:t+\"px\",fy:e+\"px\",gradientUnits:\"userSpaceOnUse\"},!1);return this.__defs.appendChild(l),new o(l,this)},r.prototype.__parseFont=function(){var t=/^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-,\\'\\\"\\sa-z0-9]+?)\\s*$/i.exec(this.font),e={style:t[1]||\"normal\",size:t[4]||\"10px\",family:t[6]||\"sans-serif\",weight:t[3]||\"normal\",decoration:t[2]||\"normal\",href:null};return\"underline\"===this.__fontUnderline&&(e.decoration=\"underline\"),this.__fontHref&&(e.href=this.__fontHref),e},r.prototype.__wrapTextLink=function(t,e){if(t.href){var i=this.__createElement(\"a\");return i.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",t.href),i.appendChild(e),i}return e},r.prototype.__applyText=function(t,e,i,n){var r=this.__parseFont(),o=this.__closestGroupOrSvg(),s=this.__createElement(\"text\",{\"font-family\":r.family,\"font-size\":r.size,\"font-style\":r.style,\"font-weight\":r.weight,\"text-decoration\":r.decoration,x:e,y:i,\"text-anchor\":function(t){var e={left:\"start\",right:\"end\",center:\"middle\",start:\"start\",end:\"end\"};return e[t]||e.start}(this.textAlign),\"dominant-baseline\":function(t){var e={alphabetic:\"alphabetic\",hanging:\"hanging\",top:\"text-before-edge\",bottom:\"text-after-edge\",middle:\"central\"};return e[t]||e.alphabetic}(this.textBaseline)},!0);s.appendChild(this.__document.createTextNode(t)),this.__currentElement=s,this.__applyStyleToCurrentElement(n),o.appendChild(this.__wrapTextLink(r,s))},r.prototype.fillText=function(t,e,i){this.__applyText(t,e,i,\"fill\")},r.prototype.strokeText=function(t,e,i){this.__applyText(t,e,i,\"stroke\")},r.prototype.measureText=function(t){return this.__ctx.font=this.font,this.__ctx.measureText(t)},r.prototype.arc=function(e,i,n,r,o,s){if(r!==o){r%=2*Math.PI,o%=2*Math.PI,r===o&&(o=(o+2*Math.PI-.001*(s?-1:1))%(2*Math.PI));var a=e+n*Math.cos(o),l=i+n*Math.sin(o),h=e+n*Math.cos(r),u=i+n*Math.sin(r),c=s?0:1,_=0,p=o-r;p<0&&(p+=2*Math.PI),_=s?p>Math.PI?0:1:p>Math.PI?1:0,this.lineTo(h,u),this.__addPathCommand(t(\"A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}\",{rx:n,ry:n,xAxisRotation:0,largeArcFlag:_,sweepFlag:c,endX:a,endY:l})),this.__currentPosition={x:a,y:l}}},r.prototype.clip=function(){var e=this.__closestGroupOrSvg(),n=this.__createElement(\"clipPath\"),r=i(this.__ids),o=this.__createElement(\"g\");this.__applyCurrentDefaultPath(),e.removeChild(this.__currentElement),n.setAttribute(\"id\",r),n.appendChild(this.__currentElement),this.__defs.appendChild(n),e.setAttribute(\"clip-path\",t(\"url(#{id})\",{id:r})),e.appendChild(o),this.__currentElement=o},r.prototype.drawImage=function(){var t,e,i,n,o,s,a,l,h,u,c,_,p,d,f=Array.prototype.slice.call(arguments),v=f[0],m=0,g=0;if(3===f.length)t=f[1],e=f[2],o=v.width,s=v.height,i=o,n=s;else if(5===f.length)t=f[1],e=f[2],i=f[3],n=f[4],o=v.width,s=v.height;else{if(9!==f.length)throw new Error(\"Inavlid number of arguments passed to drawImage: \"+arguments.length);m=f[1],g=f[2],o=f[3],s=f[4],t=f[5],e=f[6],i=f[7],n=f[8]}a=this.__closestGroupOrSvg(),this.__currentElement;var y=\"translate(\"+t+\", \"+e+\")\";if(v instanceof r){if((l=v.getSvg().cloneNode(!0)).childNodes&&l.childNodes.length>1){for(h=l.childNodes[0];h.childNodes.length;)d=h.childNodes[0].getAttribute(\"id\"),this.__ids[d]=d,this.__defs.appendChild(h.childNodes[0]);if(u=l.childNodes[1]){var b,x=u.getAttribute(\"transform\");b=x?x+\" \"+y:y,u.setAttribute(\"transform\",b),a.appendChild(u)}}}else\"IMG\"===v.nodeName?((c=this.__createElement(\"image\")).setAttribute(\"width\",i),c.setAttribute(\"height\",n),c.setAttribute(\"preserveAspectRatio\",\"none\"),(m||g||o!==v.width||s!==v.height)&&((_=this.__document.createElement(\"canvas\")).width=i,_.height=n,(p=_.getContext(\"2d\")).drawImage(v,m,g,o,s,0,0,i,n),v=_),c.setAttribute(\"transform\",y),c.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",\"CANVAS\"===v.nodeName?v.toDataURL():v.getAttribute(\"src\")),a.appendChild(c)):\"CANVAS\"===v.nodeName&&((c=this.__createElement(\"image\")).setAttribute(\"width\",i),c.setAttribute(\"height\",n),c.setAttribute(\"preserveAspectRatio\",\"none\"),(_=this.__document.createElement(\"canvas\")).width=i,_.height=n,(p=_.getContext(\"2d\")).imageSmoothingEnabled=!1,p.mozImageSmoothingEnabled=!1,p.oImageSmoothingEnabled=!1,p.webkitImageSmoothingEnabled=!1,p.drawImage(v,m,g,o,s,0,0,i,n),v=_,c.setAttribute(\"transform\",y),c.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",v.toDataURL()),a.appendChild(c))},r.prototype.createPattern=function(t,e){var n,o=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"pattern\"),a=i(this.__ids);return o.setAttribute(\"id\",a),o.setAttribute(\"width\",t.width),o.setAttribute(\"height\",t.height),\"CANVAS\"===t.nodeName||\"IMG\"===t.nodeName?((n=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"image\")).setAttribute(\"width\",t.width),n.setAttribute(\"height\",t.height),n.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",\"CANVAS\"===t.nodeName?t.toDataURL():t.getAttribute(\"src\")),o.appendChild(n),this.__defs.appendChild(o)):t instanceof r&&(o.appendChild(t.__root.childNodes[1]),this.__defs.appendChild(o)),new s(o,this)},r.prototype.setLineDash=function(t){t&&t.length>0?this.lineDash=t.join(\",\"):this.lineDash=null},r.prototype.drawFocusRing=function(){},r.prototype.createImageData=function(){},r.prototype.getImageData=function(){},r.prototype.putImageData=function(){},r.prototype.globalCompositeOperation=function(){},r.prototype.setTransform=function(){},\"object\"==typeof window&&(window.C2S=r),\"object\"==typeof e&&\"object\"==typeof e.exports&&(e.exports=r)}()},function(t,e,i){var n,r=t(278),o=t(288),s=t(292),a=t(287),l=t(292),h=t(294),u=Function.prototype.bind,c=Object.defineProperty,_=Object.prototype.hasOwnProperty;n=function(t,e,i){var n,o=h(e)&&l(e.value);return n=r(e),delete n.writable,delete n.value,n.get=function(){return!i.overwriteDefinition&&_.call(this,t)?o:(e.value=u.call(o,i.resolveContext?i.resolveContext(this):this),c(this,t,e),this[t])},n},e.exports=function(t){var e=o(arguments[1]);return null!=e.resolveContext&&s(e.resolveContext),a(t,function(t,i){return n(i,t,e)})}},function(t,e,i){var n=t(275),r=t(288),o=t(281),s=t(295);(e.exports=function(t,e){var i,o,a,l,h;return arguments.length<2||\"string\"!=typeof t?(l=e,e=t,t=null):l=arguments[2],null==t?(i=a=!0,o=!1):(i=s.call(t,\"c\"),o=s.call(t,\"e\"),a=s.call(t,\"w\")),h={value:e,configurable:i,enumerable:o,writable:a},l?n(r(l),h):h}).gs=function(t,e,i){var a,l,h,u;return\"string\"!=typeof t?(h=i,i=e,e=t,t=null):h=arguments[3],null==e?e=void 0:o(e)?null==i?i=void 0:o(i)||(h=i,i=void 0):(h=e,e=i=void 0),null==t?(a=!0,l=!1):(a=s.call(t,\"c\"),l=s.call(t,\"e\")),u={get:e,set:i,configurable:a,enumerable:l},h?n(r(h),u):u}},function(t,e,i){var n=t(294);e.exports=function(){return n(this).length=0,this}},function(t,e,i){var n=t(269),r=t(273),o=t(294),s=Array.prototype.indexOf,a=Object.prototype.hasOwnProperty,l=Math.abs,h=Math.floor;e.exports=function(t){var e,i,u,c;if(!n(t))return s.apply(this,arguments);for(i=r(o(this).length),u=arguments[1],u=isNaN(u)?0:u>=0?h(u):r(this.length)-h(l(u)),e=u;e=55296&&g<=56319&&(w+=t[++i]),w=k?_.call(k,S,w,f):w,e?(p.value=w,d(v,f,p)):v[f]=w,++f;m=f}if(void 0===m)for(m=s(t.length),e&&(v=new e(m)),i=0;i0?1:-1}},function(t,e,i){e.exports=t(270)()?Number.isNaN:t(271)},function(t,e,i){e.exports=function(){var t=Number.isNaN;return\"function\"==typeof t&&(!t({})&&t(NaN)&&!t(34))}},function(t,e,i){e.exports=function(t){return t!=t}},function(t,e,i){var n=t(266),r=Math.abs,o=Math.floor;e.exports=function(t){return isNaN(t)?0:0!==(t=Number(t))&&isFinite(t)?n(t)*o(r(t)):t}},function(t,e,i){var n=t(272),r=Math.max;e.exports=function(t){return r(0,n(t))}},function(t,e,i){var n=t(292),r=t(294),o=Function.prototype.bind,s=Function.prototype.call,a=Object.keys,l=Object.prototype.propertyIsEnumerable;e.exports=function(t,e){return function(i,h){var u,c=arguments[2],_=arguments[3];return i=Object(r(i)),n(h),u=a(i),_&&u.sort(\"function\"==typeof _?o.call(_,i):void 0),\"function\"!=typeof t&&(t=u[t]),s.call(t,u,function(t,n){return l.call(i,t)?s.call(h,c,i[t],t,i,n):e})}}},function(t,e,i){e.exports=t(276)()?Object.assign:t(277)},function(t,e,i){e.exports=function(){var t,e=Object.assign;return\"function\"==typeof e&&(t={foo:\"raz\"},e(t,{bar:\"dwa\"},{trzy:\"trzy\"}),t.foo+t.bar+t.trzy===\"razdwatrzy\")}},function(t,e,i){var n=t(284),r=t(294),o=Math.max;e.exports=function(t,e){var i,s,a,l=o(arguments.length,2);for(t=Object(r(t)),a=function(n){try{t[n]=e[n]}catch(t){i||(i=t)}},s=1;s-1}},function(t,e,i){var n=Object.prototype.toString,r=n.call(\"\");e.exports=function(t){return\"string\"==typeof t||t&&\"object\"==typeof t&&(t instanceof String||n.call(t)===r)||!1}},function(t,e,i){var n=Object.create(null),r=Math.random;e.exports=function(){var t;do{t=r().toString(36).slice(2)}while(n[t]);return t}},function(t,e,i){var n,r=t(289),o=t(295),s=t(256),a=t(313),l=t(303),h=Object.defineProperty;n=e.exports=function(t,e){if(!(this instanceof n))throw new TypeError(\"Constructor requires 'new'\");l.call(this,t),e=e?o.call(e,\"key+value\")?\"key+value\":o.call(e,\"key\")?\"key\":\"value\":\"value\",h(this,\"__kind__\",s(\"\",e))},r&&r(n,l),delete n.prototype.constructor,n.prototype=Object.create(l.prototype,{_resolve:s(function(t){return\"value\"===this.__kind__?this.__list__[t]:\"key+value\"===this.__kind__?[t,this.__list__[t]]:t})}),h(n.prototype,a.toStringTag,s(\"c\",\"Array Iterator\"))},function(t,e,i){var n=t(262),r=t(292),o=t(298),s=t(302),a=Array.isArray,l=Function.prototype.call,h=Array.prototype.some;e.exports=function(t,e){var i,u,c,_,p,d,f,v,m=arguments[2];if(a(t)||n(t)?i=\"array\":o(t)?i=\"string\":t=s(t),r(e),c=function(){_=!0},\"array\"!==i)if(\"string\"!==i)for(u=t.next();!u.done;){if(l.call(e,m,u.value,c),_)return;u=t.next()}else for(d=t.length,p=0;p=55296&&v<=56319&&(f+=t[++p]),l.call(e,m,f,c),!_);++p);else h.call(t,function(t){return l.call(e,m,t,c),_})}},function(t,e,i){var n=t(262),r=t(298),o=t(300),s=t(305),a=t(306),l=t(313).iterator;e.exports=function(t){return\"function\"==typeof a(t)[l]?t[l]():n(t)?new o(t):r(t)?new s(t):new o(t)}},function(t,e,i){var n,r=t(257),o=t(275),s=t(292),a=t(294),l=t(256),h=t(255),u=t(313),c=Object.defineProperty,_=Object.defineProperties;e.exports=n=function(t,e){if(!(this instanceof n))throw new TypeError(\"Constructor requires 'new'\");_(this,{__list__:l(\"w\",a(t)),__context__:l(\"w\",e),__nextIndex__:l(\"w\",0)}),e&&(s(e.on),e.on(\"_add\",this._onAdd),e.on(\"_delete\",this._onDelete),e.on(\"_clear\",this._onClear))},delete n.prototype.constructor,_(n.prototype,o({_next:l(function(){var t;if(this.__list__)return this.__redo__&&void 0!==(t=this.__redo__.shift())?t:this.__nextIndex__=this.__nextIndex__||(++this.__nextIndex__,this.__redo__?(this.__redo__.forEach(function(e,i){e>=t&&(this.__redo__[i]=++e)},this),this.__redo__.push(t)):c(this,\"__redo__\",l(\"c\",[t])))}),_onDelete:l(function(t){var e;t>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&(-1!==(e=this.__redo__.indexOf(t))&&this.__redo__.splice(e,1),this.__redo__.forEach(function(e,i){e>t&&(this.__redo__[i]=--e)},this)))}),_onClear:l(function(){this.__redo__&&r.call(this.__redo__),this.__nextIndex__=0})}))),c(n.prototype,u.iterator,l(function(){return this}))},function(t,e,i){var n=t(262),r=t(283),o=t(298),s=t(313).iterator,a=Array.isArray;e.exports=function(t){return!!r(t)&&(!!a(t)||(!!o(t)||(!!n(t)||\"function\"==typeof t[s])))}},function(t,e,i){var n,r=t(289),o=t(256),s=t(313),a=t(303),l=Object.defineProperty;n=e.exports=function(t){if(!(this instanceof n))throw new TypeError(\"Constructor requires 'new'\");t=String(t),a.call(this,t),l(this,\"__length__\",o(\"\",t.length))},r&&r(n,a),delete n.prototype.constructor,n.prototype=Object.create(a.prototype,{_next:o(function(){if(this.__list__)return this.__nextIndex__=55296&&e<=56319?i+this.__list__[this.__nextIndex__++]:i})}),l(n.prototype,s.toStringTag,o(\"c\",\"String Iterator\"))},function(t,e,i){var n=t(304);e.exports=function(t){if(!n(t))throw new TypeError(t+\" is not iterable\");return t}},/*!\n", " * @overview es6-promise - a tiny implementation of Promises/A+.\n", " * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n", " * @license Licensed under MIT license\n", " * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n", " * @version 3.0.2\n", " */\n", " function(t,e,i){(function(){\"use strict\";function i(t){return\"function\"==typeof t}function n(){return function(){setTimeout(r,1)}}function r(){for(var t=0;t\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\",o=t.console&&(t.console.warn||t.console.log);return o&&o.call(t.console,r,n),e.apply(this,arguments)}}function h(t,e,i){var n,r=e.prototype;(n=t.prototype=Object.create(r)).constructor=t,n._super=r,i&&K(n,i)}function u(t,e){return function(){return t.apply(e,arguments)}}function c(t,e){return typeof t==et?t.apply(e?e[0]||r:r,e):t}function _(t,e){return t===r?e:t}function p(t,e,i){a(m(e),function(e){t.addEventListener(e,i,!1)})}function d(t,e,i){a(m(e),function(e){t.removeEventListener(e,i,!1)})}function f(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function v(t,e){return t.indexOf(e)>-1}function m(t){return t.trim().split(/\\s+/g)}function g(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var n=0;ni[e]}):n.sort()),n}function x(t,e){for(var i,n,o=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=T(e):1===o&&(i.firstMultiple=!1);var s=i.firstInput,a=i.firstMultiple,l=a?a.center:s.center,h=e.center=C(n);e.timeStamp=rt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=z(l,h),e.distance=E(l,h),function(t,e){var i=e.center,n=t.offsetDelta||{},r=t.prevDelta||{},o=t.prevInput||{};e.eventType!==_t&&o.eventType!==dt||(r=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},n=t.offsetDelta={x:i.x,y:i.y});e.deltaX=r.x+(i.x-n.x),e.deltaY=r.y+(i.y-n.y)}(i,e),e.offsetDirection=A(e.deltaX,e.deltaY);var u=M(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=u.x,e.overallVelocityY=u.y,e.overallVelocity=nt(u.x)>nt(u.y)?u.x:u.y,e.scale=a?function(t,e){return E(e[0],e[1],Tt)/E(t[0],t[1],Tt)}(a.pointers,n):1,e.rotation=a?function(t,e){return z(e[1],e[0],Tt)+z(t[1],t[0],Tt)}(a.pointers,n):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,function(t,e){var i,n,o,s,a=t.lastInterval||e,l=e.timeStamp-a.timeStamp;if(e.eventType!=ft&&(l>ct||a.velocity===r)){var h=e.deltaX-a.deltaX,u=e.deltaY-a.deltaY,c=M(l,h,u);n=c.x,o=c.y,i=nt(c.x)>nt(c.y)?c.x:c.y,s=A(h,u),t.lastInterval=e}else i=a.velocity,n=a.velocityX,o=a.velocityY,s=a.direction;e.velocity=i,e.velocityX=n,e.velocityY=o,e.direction=s}(i,e);var c=t.element;f(e.srcEvent.target,c)&&(c=e.srcEvent.target);e.target=c}(t,i),t.emit(\"hammer.input\",i),t.recognize(i),t.session.prevInput=i}function T(t){for(var e=[],i=0;i=nt(e)?t<0?mt:gt:e<0?yt:bt}function E(t,e,i){i||(i=St);var n=e[i[0]]-t[i[0]],r=e[i[1]]-t[i[1]];return Math.sqrt(n*n+r*r)}function z(t,e,i){i||(i=St);var n=e[i[0]]-t[i[0]],r=e[i[1]]-t[i[1]];return 180*Math.atan2(r,n)/Math.PI}function O(){this.evEl=Mt,this.evWin=At,this.pressed=!1,k.apply(this,arguments)}function P(){this.evEl=Ot,this.evWin=Pt,k.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function j(){this.evTarget=Nt,this.evWin=Dt,this.started=!1,k.apply(this,arguments)}function N(){this.evTarget=It,this.targetIds={},k.apply(this,arguments)}function D(){k.apply(this,arguments);var t=u(this.handler,this);this.touch=new N(this.manager,t),this.mouse=new O(this.manager,t),this.primaryTouch=null,this.lastTouches=[]}function F(t){var e=t.changedPointers[0];if(e.identifier===this.primaryTouch){var i={x:e.clientX,y:e.clientY};this.lastTouches.push(i);var n=this.lastTouches,r=function(){var t=n.indexOf(i);t>-1&&n.splice(t,1)};setTimeout(r,Bt)}}function I(t,e){this.manager=t,this.set(e)}function B(t){this.options=K({},this.defaults,t||{}),this.id=at++,this.manager=null,this.options.enable=_(this.options.enable,!0),this.state=Ht,this.simultaneous={},this.requireFail=[]}function R(t){return t&Zt?\"cancel\":t&$t?\"end\":t&Qt?\"move\":t&Jt?\"start\":\"\"}function L(t){return t==bt?\"down\":t==yt?\"up\":t==mt?\"left\":t==gt?\"right\":\"\"}function V(t,e){var i=e.manager;return i?i.get(t):t}function G(){B.apply(this,arguments)}function U(){G.apply(this,arguments),this.pX=null,this.pY=null}function Y(){G.apply(this,arguments)}function q(){B.apply(this,arguments),this._timer=null,this._input=null}function X(){G.apply(this,arguments)}function W(){G.apply(this,arguments)}function H(){B.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function J(t,e){return e=e||{},e.recognizers=_(e.recognizers,J.defaults.preset),new Q(t,e)}function Q(t,e){this.options=K({},J.defaults,e||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=t,this.input=function(t){var e,i=t.options.inputClass;e=i||(ht?P:ut?N:lt?D:O);return new e(t,S)}(this),this.touchAction=new I(this,this.options.touchAction),$(this,!0),a(this.options.recognizers,function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])},this)}function $(t,e){var i=t.element;if(i.style){var n;a(t.options.cssProps,function(r,o){n=x(i.style,o),e?(t.oldCssProps[n]=i.style[n],i.style[n]=r):i.style[n]=t.oldCssProps[n]||\"\"}),e||(t.oldCssProps={})}}var K,Z=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"],tt=i.createElement(\"div\"),et=\"function\",it=Math.round,nt=Math.abs,rt=Date.now;K=\"function\"!=typeof Object.assign?function(t){if(t===r||null===t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var e=Object(t),i=1;i-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(e,t)}var i=this,n=this.state;n<$t&&e(i.options.event+R(n)),e(i.options.event),t.additionalEvent&&e(t.additionalEvent),n>=$t&&e(i.options.event+R(n))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;te.threshold&&r&e.direction},attrTest:function(t){return G.prototype.attrTest.call(this,t)&&(this.state&Jt||!(this.state&Jt)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=L(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),h(Y,G,{defaults:{event:\"pinch\",threshold:0,pointers:2},getTouchAction:function(){return[Yt]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&Jt)},emit:function(t){if(1!==t.scale){var e=t.scale<1?\"in\":\"out\";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),h(q,B,{defaults:{event:\"press\",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Gt]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distancee.time;if(this._input=t,!n||!i||t.eventType&(dt|ft)&&!r)this.reset();else if(t.eventType&_t)this.reset(),this._timer=o(function(){this.state=Kt,this.tryEmit()},e.time,this);else if(t.eventType&dt)return Kt;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===Kt&&(t&&t.eventType&dt?this.manager.emit(this.options.event+\"up\",t):(this._input.timeStamp=rt(),this.manager.emit(this.options.event,this._input)))}}),h(X,G,{defaults:{event:\"rotate\",threshold:0,pointers:2},getTouchAction:function(){return[Yt]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&Jt)}}),h(W,G,{defaults:{event:\"swipe\",threshold:10,velocity:.3,direction:xt|wt,pointers:1},getTouchAction:function(){return U.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(xt|wt)?e=t.overallVelocity:i&xt?e=t.overallVelocityX:i&wt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&nt(e)>this.options.velocity&&t.eventType&dt},emit:function(t){var e=L(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),h(H,B,{defaults:{event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Ut]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distance=\";case n.Eq:return\"==\"}}()+\" 0\"},Object.defineProperty(t.prototype,\"id\",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"expression\",{get:function(){return this._expression},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"op\",{get:function(){return this._operator},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"strength\",{get:function(){return this._strength},enumerable:!0,configurable:!0}),t}();i.Constraint=o;var s=0},function(t,e,i){var n=t(333),r=t(336),o=t(327),s=function(){function t(){var t=function(t){for(var e=0,i=function(){return 0},n=o.createMap(r.Variable.Compare),s=0,a=t.length;s=0?\" + \"+l+a:\" - \"+-l+a}var h=this.constant;return h<0?i+=\" - \"+-h:h>0&&(i+=\" + \"+h),i},Object.defineProperty(t.prototype,\"terms\",{get:function(){return this._terms},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"constant\",{get:function(){return this._constant},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"value\",{get:function(){var t=this._constant;return n.forEach(this._terms,function(e){t+=e.first.value*e.second}),t},enumerable:!0,configurable:!0}),t}();i.Expression=s},function(t,e,i){/*-----------------------------------------------------------------------------\n", " | Copyright (c) 2014, Nucleic Development Team.\n", " |\n", " | Distributed under the terms of the Modified BSD License.\n", " |\n", " | The full license is in the file COPYING.txt, distributed with this software.\n", " |----------------------------------------------------------------------------*/\n", " function n(t){for(var e in t)i.hasOwnProperty(e)||(i[e]=t[e])}n(t(336)),n(t(325)),n(t(324)),n(t(329)),n(t(328))},function(t,e,i){var n=t(333);i.createMap=function(t){return new n.AssociativeArray(t)}},function(t,e,i){function n(t){return t<0?-t<1e-8:t<1e-8}var r=t(336),o=t(325),s=t(324),a=t(329),l=t(327),h=t(333),u=function(){function t(){this._cnMap=l.createMap(s.Constraint.Compare),this._rowMap=l.createMap(_.Compare),this._varMap=l.createMap(r.Variable.Compare),this._editMap=l.createMap(r.Variable.Compare),this._infeasibleRows=[],this._objective=new d,this._artificial=null,this._idTick=0}return t.prototype.addConstraint=function(t){var e=this._cnMap.find(t);if(void 0!==e)throw new Error(\"duplicate constraint\");var i=this._createRow(t),r=i.row,o=i.tag,s=this._chooseSubject(r,o);if(s.type()===c.Invalid&&r.allDummies()){if(!n(r.constant())){for(var a=[],l=0,h=t.expression.terms._array;l0&&a.type()!==c.Dummy){var h=this._objective.coefficientFor(a),u=h/l;u0;)i(t[r=o+(n=s>>1)],e)<0?(o=r+1,s-=n+1):s=n;return o}var r=t(334);i.lowerBound=n,i.binarySearch=function(t,e,i){var r=n(t,e,i);if(r===t.length)return-1;var o=t[r];if(0!==i(o,e))return-1;return r},i.binaryFind=function(t,e,i){var r=n(t,e,i);if(r===t.length)return;var o=t[r];if(0!==i(o,e))return;return o},i.asSet=function(t,e){var i=r.asArray(t),n=i.length;if(n<=1)return i;i.sort(e);for(var o=[i[0]],s=1,a=0;s0))return!1;++r}}return!0},i.setIsSubset=function(t,e,i){var n=t.length,r=e.length;if(n>r)return!1;var o=0,s=0;for(;o0?++s:(++o,++s)}if(o0?(a.push(h),++r):(a.push(l),++n,++r)}for(;n0?++r:(a.push(l),++n,++r)}return a},i.setDifference=function(t,e,i){var n=0,r=0,o=t.length,s=e.length,a=[];for(;n0?++r:(++n,++r)}for(;n0?(a.push(h),++r):(++n,++r)}for(;n=0},e.prototype.find=function(t){return s.binaryFind(this._array,t,this._wrapped)},e.prototype.setDefault=function(t,e){var i=this._array,n=s.lowerBound(i,t,this._wrapped);if(n===i.length){var o=new r.Pair(t,e());return i.push(o),o}var a=i[n];if(0!==this._compare(a.first,t)){var o=new r.Pair(t,e());return i.splice(n,0,o),o}return a},e.prototype.insert=function(t,e){var i=this._array,n=s.lowerBound(i,t,this._wrapped);if(n===i.length){var o=new r.Pair(t,e);return i.push(o),o}var a=i[n];if(0!==this._compare(a.first,t)){var o=new r.Pair(t,e);return i.splice(n,0,o),o}return a.second=e,a},e.prototype.update=function(t){var i=this;t instanceof e?this._array=function(t,e,i){var n=0,r=0,o=t.length,s=e.length,a=[];for(;n0?(a.push(h.copy()),++r):(a.push(h.copy()),++n,++r)}for(;n-1?function(t,e){var i,n,o,s,a;a=t.toString(),i=a.split(\"e\")[0],s=a.split(\"e\")[1],n=i.split(\".\")[0],o=i.split(\".\")[1]||\"\",a=n+o+r(s-o.length),e>0&&(a+=\".\"+r(e));return a}(t,e):(i(t*a)/a).toFixed(e),n&&(o=new RegExp(\"0{1,\"+n+\"}$\"),s=s.replace(o,\"\")),s}function s(t,e,i){return e.indexOf(\"$\")>-1?function(t,e,i){var n,r,o=e,s=o.indexOf(\"$\"),l=o.indexOf(\"(\"),h=o.indexOf(\"+\"),u=o.indexOf(\"-\"),_=\"\",d=\"\";-1===o.indexOf(\"$\")?\"infix\"===c[p].currency.position?(d=c[p].currency.symbol,c[p].currency.spaceSeparated&&(d=\" \"+d+\" \")):c[p].currency.spaceSeparated&&(_=\" \"):o.indexOf(\" $\")>-1?(_=\" \",o=o.replace(\" $\",\"\")):o.indexOf(\"$ \")>-1?(_=\" \",o=o.replace(\"$ \",\"\")):o=o.replace(\"$\",\"\");if(r=a(t,o,i,d),-1===e.indexOf(\"$\"))switch(c[p].currency.position){case\"postfix\":r.indexOf(\")\")>-1?((r=r.split(\"\")).splice(-1,0,_+c[p].currency.symbol),r=r.join(\"\")):r=r+_+c[p].currency.symbol;break;case\"infix\":break;case\"prefix\":r.indexOf(\"(\")>-1||r.indexOf(\"-\")>-1?(r=r.split(\"\"),n=Math.max(l,u)+1,r.splice(n,0,c[p].currency.symbol+_),r=r.join(\"\")):r=c[p].currency.symbol+_+r;break;default:throw Error('Currency position should be among [\"prefix\", \"infix\", \"postfix\"]')}else s<=1?r.indexOf(\"(\")>-1||r.indexOf(\"+\")>-1||r.indexOf(\"-\")>-1?(r=r.split(\"\"),n=1,(s-1?((r=r.split(\"\")).splice(-1,0,_+c[p].currency.symbol),r=r.join(\"\")):r=r+_+c[p].currency.symbol;return r}(t,e,i):e.indexOf(\"%\")>-1?function(t,e,i){var n,r=\"\";t*=100,e.indexOf(\" %\")>-1?(r=\" \",e=e.replace(\" %\",\"\")):e=e.replace(\"%\",\"\");(n=a(t,e,i)).indexOf(\")\")>-1?((n=n.split(\"\")).splice(-1,0,r+\"%\"),n=n.join(\"\")):n=n+r+\"%\";return n}(t,e,i):e.indexOf(\":\")>-1?function(t){var e=Math.floor(t/60/60),i=Math.floor((t-60*e*60)/60),n=Math.round(t-60*e*60-60*i);return e+\":\"+(i<10?\"0\"+i:i)+\":\"+(n<10?\"0\"+n:n)}(t):a(t,e,i)}function a(t,e,i,n){var r,s,a,l,h,u,_,f,v,m,g,y,b,x,w,k,S,T,C=!1,M=!1,A=!1,E=\"\",z=!1,O=!1,P=!1,j=!1,N=!1,D=\"\",F=\"\",I=Math.abs(t),B=[\"B\",\"KiB\",\"MiB\",\"GiB\",\"TiB\",\"PiB\",\"EiB\",\"ZiB\",\"YiB\"],R=[\"B\",\"KB\",\"MB\",\"GB\",\"TB\",\"PB\",\"EB\",\"ZB\",\"YB\"],L=\"\",V=!1,G=!1,U=\"\";if(0===t&&null!==d)return d;if(!isFinite(t))return\"\"+t;if(0===e.indexOf(\"{\")){var Y=e.indexOf(\"}\");if(-1===Y)throw Error('Format should also contain a \"}\"');y=e.slice(1,Y),e=e.slice(Y+1)}else y=\"\";if(e.indexOf(\"}\")===e.length-1){var q=e.indexOf(\"{\");if(-1===q)throw Error('Format should also contain a \"{\"');b=e.slice(q+1,-1),e=e.slice(0,q+1)}else b=\"\";var X;if(X=-1===e.indexOf(\".\")?e.match(/([0-9]+).*/):e.match(/([0-9]+)\\..*/),T=null===X?-1:X[1].length,-1!==e.indexOf(\"-\")&&(V=!0),e.indexOf(\"(\")>-1?(C=!0,e=e.slice(1,-1)):e.indexOf(\"+\")>-1&&(M=!0,e=e.replace(/\\+/g,\"\")),e.indexOf(\"a\")>-1){if(m=e.split(\".\")[0].match(/[0-9]+/g)||[\"0\"],m=parseInt(m[0],10),z=e.indexOf(\"aK\")>=0,O=e.indexOf(\"aM\")>=0,P=e.indexOf(\"aB\")>=0,j=e.indexOf(\"aT\")>=0,N=z||O||P||j,e.indexOf(\" a\")>-1?(E=\" \",e=e.replace(\" a\",\"\")):e=e.replace(\"a\",\"\"),h=Math.floor(Math.log(I)/Math.LN10)+1,_=h%3,_=0===_?3:_,m&&0!==I&&(u=Math.floor(Math.log(I)/Math.LN10)+1-m,f=3*~~((Math.min(m,h)-_)/3),I/=Math.pow(10,f),-1===e.indexOf(\".\")&&m>3))for(e+=\"[.]\",k=(k=0===u?0:3*~~(u/3)-u)<0?k+3:k,r=0;r=Math.pow(10,12)&&!N||j?(E+=c[p].abbreviations.trillion,t/=Math.pow(10,12)):I=Math.pow(10,9)&&!N||P?(E+=c[p].abbreviations.billion,t/=Math.pow(10,9)):I=Math.pow(10,6)&&!N||O?(E+=c[p].abbreviations.million,t/=Math.pow(10,6)):(I=Math.pow(10,3)&&!N||z)&&(E+=c[p].abbreviations.thousand,t/=Math.pow(10,3)))}if(e.indexOf(\"b\")>-1)for(e.indexOf(\" b\")>-1?(D=\" \",e=e.replace(\" b\",\"\")):e=e.replace(\"b\",\"\"),l=0;l<=B.length;l++)if(s=Math.pow(1024,l),a=Math.pow(1024,l+1),t>=s&&t0&&(t/=s);break}if(e.indexOf(\"d\")>-1)for(e.indexOf(\" d\")>-1?(D=\" \",e=e.replace(\" d\",\"\")):e=e.replace(\"d\",\"\"),l=0;l<=R.length;l++)if(s=Math.pow(1e3,l),a=Math.pow(1e3,l+1),t>=s&&t0&&(t/=s);break}if(e.indexOf(\"o\")>-1&&(e.indexOf(\" o\")>-1?(F=\" \",e=e.replace(\" o\",\"\")):e=e.replace(\"o\",\"\"),c[p].ordinal&&(F+=c[p].ordinal(t))),e.indexOf(\"[.]\")>-1&&(A=!0,e=e.replace(\"[.]\",\".\")),v=t.toString().split(\".\")[0],g=e.split(\".\")[1],x=e.indexOf(\",\"),g){if(-1!==g.indexOf(\"*\")?L=o(t,t.toString().split(\".\")[1].length,i):g.indexOf(\"[\")>-1?(g=(g=g.replace(\"]\",\"\")).split(\"[\"),L=o(t,g[0].length+g[1].length,i,g[1].length)):L=o(t,g.length,i),v=L.split(\".\")[0],L.split(\".\")[1].length){var W=n?E+n:c[p].delimiters.decimal;L=W+L.split(\".\")[1]}else L=\"\";A&&0===Number(L.slice(1))&&(L=\"\")}else v=o(t,null,i);return v.indexOf(\"-\")>-1&&(v=v.slice(1),G=!0),v.length-1&&(v=v.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g,\"$1\"+c[p].delimiters.thousands)),0===e.indexOf(\".\")&&(v=\"\"),w=e.indexOf(\"(\"),S=e.indexOf(\"-\"),U=w2||(o.length<2?!o[0].match(/^\\d+.*\\d$/)||o[0].match(a):1===o[0].length?!o[0].match(/^\\d+$/)||o[0].match(a)||!o[1].match(/^\\d+$/):!o[0].match(/^\\d+.*\\d$/)||o[0].match(a)||!o[1].match(/^\\d+$/)))))},e.exports={format:function(t,e,i,n){null!=i&&i!==u.culture()&&u.setCulture(i);return s(Number(t),null!=e?e:f,null==n?Math.round:n)}}},function(t,e,i){function n(t,e){if(!(this instanceof n))return new n(t);e=e||function(t){if(t)throw t};var i=r(t);if(\"object\"==typeof i){var s=n.projections.get(i.projName);if(s){if(i.datumCode&&\"none\"!==i.datumCode){var u=l[i.datumCode];u&&(i.datum_params=u.towgs84?u.towgs84.split(\",\"):null,i.ellps=u.ellipse,i.datumName=u.datumName?u.datumName:i.datumCode)}i.k0=i.k0||1,i.axis=i.axis||\"enu\";var c=a.sphere(i.a,i.b,i.rf,i.ellps,i.sphere),_=a.eccentricity(c.a,c.b,c.rf,i.R_A),p=i.datum||h(i.datumCode,i.datum_params,c.a,c.b,_.es,_.ep2);o(this,i),o(this,s),this.a=c.a,this.b=c.b,this.rf=c.rf,this.sphere=c.sphere,this.es=_.es,this.e=_.e,this.ep2=_.ep2,this.datum=p,this.init(),e(null,this)}else e(t)}else e(t)}var r=t(358),o=t(356),s=t(360),a=t(355),l=t(346),h=t(351);(n.projections=s).start(),e.exports=n},function(t,e,i){e.exports=function(t,e,i){var n,r,o,s=i.x,a=i.y,l=i.z||0,h={};for(o=0;o<3;o++)if(!e||2!==o||void 0!==i.z)switch(0===o?(n=s,r=\"x\"):1===o?(n=a,r=\"y\"):(n=l,r=\"z\"),t.axis[o]){case\"e\":h[r]=n;break;case\"w\":h[r]=-n;break;case\"n\":h[r]=n;break;case\"s\":h[r]=-n;break;case\"u\":void 0!==i[r]&&(h.z=n);break;case\"d\":void 0!==i[r]&&(h.z=-n);break;default:return null}return h}},function(t,e,i){var n=2*Math.PI,r=t(343);e.exports=function(t){return Math.abs(t)<=3.14159265359?t:t-r(t)*n}},function(t,e,i){e.exports=function(t,e,i){var n=t*e;return i/Math.sqrt(1-n*n)}},function(t,e,i){var n=Math.PI/2;e.exports=function(t,e){for(var i,r,o=.5*t,s=n-2*Math.atan(e),a=0;a<=15;a++)if(i=t*Math.sin(s),r=n-2*Math.atan(e*Math.pow((1-i)/(1+i),o))-s,s+=r,Math.abs(r)<=1e-10)return s;return-9999}},function(t,e,i){e.exports=function(t){return t<0?-1:1}},function(t,e,i){e.exports=function(t){var e={x:t[0],y:t[1]};return t.length>2&&(e.z=t[2]),t.length>3&&(e.m=t[3]),e}},function(t,e,i){var n=Math.PI/2;e.exports=function(t,e,i){var r=t*i,o=.5*t;return r=Math.pow((1-r)/(1+r),o),Math.tan(.5*(n-e))/r}},function(t,e,i){i.wgs84={towgs84:\"0,0,0\",ellipse:\"WGS84\",datumName:\"WGS84\"},i.ch1903={towgs84:\"674.374,15.056,405.346\",ellipse:\"bessel\",datumName:\"swiss\"},i.ggrs87={towgs84:\"-199.87,74.79,246.62\",ellipse:\"GRS80\",datumName:\"Greek_Geodetic_Reference_System_1987\"},i.nad83={towgs84:\"0,0,0\",ellipse:\"GRS80\",datumName:\"North_American_Datum_1983\"},i.nad27={nadgrids:\"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat\",ellipse:\"clrk66\",datumName:\"North_American_Datum_1927\"},i.potsdam={towgs84:\"606.0,23.0,413.0\",ellipse:\"bessel\",datumName:\"Potsdam Rauenberg 1950 DHDN\"},i.carthage={towgs84:\"-263.0,6.0,431.0\",ellipse:\"clark80\",datumName:\"Carthage 1934 Tunisia\"},i.hermannskogel={towgs84:\"653.0,-212.0,449.0\",ellipse:\"bessel\",datumName:\"Hermannskogel\"},i.ire65={towgs84:\"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15\",ellipse:\"mod_airy\",datumName:\"Ireland 1965\"},i.rassadiran={towgs84:\"-133.63,-157.5,-158.62\",ellipse:\"intl\",datumName:\"Rassadiran\"},i.nzgd49={towgs84:\"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993\",ellipse:\"intl\",datumName:\"New Zealand Geodetic Datum 1949\"},i.osgb36={towgs84:\"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894\",ellipse:\"airy\",datumName:\"Airy 1830\"},i.s_jtsk={towgs84:\"589,76,480\",ellipse:\"bessel\",datumName:\"S-JTSK (Ferro)\"},i.beduaram={towgs84:\"-106,-87,188\",ellipse:\"clrk80\",datumName:\"Beduaram\"},i.gunung_segara={towgs84:\"-403,684,41\",ellipse:\"bessel\",datumName:\"Gunung Segara Jakarta\"},i.rnb72={towgs84:\"106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1\",ellipse:\"intl\",datumName:\"Reseau National Belge 1972\"}},function(t,e,i){i.MERIT={a:6378137,rf:298.257,ellipseName:\"MERIT 1983\"},i.SGS85={a:6378136,rf:298.257,ellipseName:\"Soviet Geodetic System 85\"},i.GRS80={a:6378137,rf:298.257222101,ellipseName:\"GRS 1980(IUGG, 1980)\"},i.IAU76={a:6378140,rf:298.257,ellipseName:\"IAU 1976\"},i.airy={a:6377563.396,b:6356256.91,ellipseName:\"Airy 1830\"},i.APL4={a:6378137,rf:298.25,ellipseName:\"Appl. Physics. 1965\"},i.NWL9D={a:6378145,rf:298.25,ellipseName:\"Naval Weapons Lab., 1965\"},i.mod_airy={a:6377340.189,b:6356034.446,ellipseName:\"Modified Airy\"},i.andrae={a:6377104.43,rf:300,ellipseName:\"Andrae 1876 (Den., Iclnd.)\"},i.aust_SA={a:6378160,rf:298.25,ellipseName:\"Australian Natl & S. Amer. 1969\"},i.GRS67={a:6378160,rf:298.247167427,ellipseName:\"GRS 67(IUGG 1967)\"},i.bessel={a:6377397.155,rf:299.1528128,ellipseName:\"Bessel 1841\"},i.bess_nam={a:6377483.865,rf:299.1528128,ellipseName:\"Bessel 1841 (Namibia)\"},i.clrk66={a:6378206.4,b:6356583.8,ellipseName:\"Clarke 1866\"},i.clrk80={a:6378249.145,rf:293.4663,ellipseName:\"Clarke 1880 mod.\"},i.clrk58={a:6378293.645208759,rf:294.2606763692654,ellipseName:\"Clarke 1858\"},i.CPM={a:6375738.7,rf:334.29,ellipseName:\"Comm. des Poids et Mesures 1799\"},i.delmbr={a:6376428,rf:311.5,ellipseName:\"Delambre 1810 (Belgium)\"},i.engelis={a:6378136.05,rf:298.2566,ellipseName:\"Engelis 1985\"},i.evrst30={a:6377276.345,rf:300.8017,ellipseName:\"Everest 1830\"},i.evrst48={a:6377304.063,rf:300.8017,ellipseName:\"Everest 1948\"},i.evrst56={a:6377301.243,rf:300.8017,ellipseName:\"Everest 1956\"},i.evrst69={a:6377295.664,rf:300.8017,ellipseName:\"Everest 1969\"},i.evrstSS={a:6377298.556,rf:300.8017,ellipseName:\"Everest (Sabah & Sarawak)\"},i.fschr60={a:6378166,rf:298.3,ellipseName:\"Fischer (Mercury Datum) 1960\"},i.fschr60m={a:6378155,rf:298.3,ellipseName:\"Fischer 1960\"},i.fschr68={a:6378150,rf:298.3,ellipseName:\"Fischer 1968\"},i.helmert={a:6378200,rf:298.3,ellipseName:\"Helmert 1906\"},i.hough={a:6378270,rf:297,ellipseName:\"Hough\"},i.intl={a:6378388,rf:297,ellipseName:\"International 1909 (Hayford)\"},i.kaula={a:6378163,rf:298.24,ellipseName:\"Kaula 1961\"},i.lerch={a:6378139,rf:298.257,ellipseName:\"Lerch 1979\"},i.mprts={a:6397300,rf:191,ellipseName:\"Maupertius 1738\"},i.new_intl={a:6378157.5,b:6356772.2,ellipseName:\"New International 1967\"},i.plessis={a:6376523,rf:6355863,ellipseName:\"Plessis 1817 (France)\"},i.krass={a:6378245,rf:298.3,ellipseName:\"Krassovsky, 1942\"},i.SEasia={a:6378155,b:6356773.3205,ellipseName:\"Southeast Asia\"},i.walbeck={a:6376896,b:6355834.8467,ellipseName:\"Walbeck\"},i.WGS60={a:6378165,rf:298.3,ellipseName:\"WGS 60\"},i.WGS66={a:6378145,rf:298.25,ellipseName:\"WGS 66\"},i.WGS7={a:6378135,rf:298.26,ellipseName:\"WGS 72\"},i.WGS84={a:6378137,rf:298.257223563,ellipseName:\"WGS 84\"},i.sphere={a:6370997,b:6370997,ellipseName:\"Normal Sphere (r=6370997)\"}},function(t,e,i){i.greenwich=0,i.lisbon=-9.131906111111,i.paris=2.337229166667,i.bogota=-74.080916666667,i.madrid=-3.687938888889,i.rome=12.452333333333,i.bern=7.439583333333,i.jakarta=106.807719444444,i.ferro=-17.666666666667,i.brussels=4.367975,i.stockholm=18.058277777778,i.athens=23.7163375,i.oslo=10.722916666667},function(t,e,i){i.ft={to_meter:.3048},i[\"us-ft\"]={to_meter:1200/3937}},function(t,e,i){function n(t,e,i){var n;return Array.isArray(i)?(n=s(t,e,i),3===i.length?[n.x,n.y,n.z]:[n.x,n.y]):s(t,e,i)}function r(t){return t instanceof o?t:t.oProj?t.oProj:o(t)}var o=t(338),s=t(363),a=o(\"WGS84\");e.exports=function(t,e,i){t=r(t);var o,s=!1;void 0===e?(e=t,t=a,s=!0):(void 0!==e.x||Array.isArray(e))&&(i=e,e=t,t=a,s=!0);return e=r(e),i?n(t,e,i):(o={forward:function(i){return n(t,e,i)},inverse:function(i){return n(e,t,i)}},s&&(o.oProj=e),o)}},function(t,e,i){var n=1,r=2,o=4,s=5,a=484813681109536e-20;e.exports=function(t,e,i,l,h,u){var c={};c.datum_type=o,t&&\"none\"===t&&(c.datum_type=s);e&&(c.datum_params=e.map(parseFloat),0===c.datum_params[0]&&0===c.datum_params[1]&&0===c.datum_params[2]||(c.datum_type=n),c.datum_params.length>3&&(0===c.datum_params[3]&&0===c.datum_params[4]&&0===c.datum_params[5]&&0===c.datum_params[6]||(c.datum_type=r,c.datum_params[3]*=a,c.datum_params[4]*=a,c.datum_params[5]*=a,c.datum_params[6]=c.datum_params[6]/1e6+1)));return c.a=i,c.b=l,c.es=h,c.ep2=u,c}},function(t,e,i){var n=Math.PI/2;i.compareDatums=function(t,e){return t.datum_type===e.datum_type&&(!(t.a!==e.a||Math.abs(this.es-e.es)>5e-11)&&(1===t.datum_type?this.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]:2!==t.datum_type||t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]&&t.datum_params[3]===e.datum_params[3]&&t.datum_params[4]===e.datum_params[4]&&t.datum_params[5]===e.datum_params[5]&&t.datum_params[6]===e.datum_params[6]))},i.geodeticToGeocentric=function(t,e,i){var r,o,s,a,l=t.x,h=t.y,u=t.z?t.z:0;if(h<-n&&h>-1.001*n)h=-n;else if(h>n&&h<1.001*n)h=n;else if(h<-n||h>n)return null;return l>Math.PI&&(l-=2*Math.PI),o=Math.sin(h),a=Math.cos(h),s=o*o,r=i/Math.sqrt(1-e*s),{x:(r+u)*a*Math.cos(l),y:(r+u)*a*Math.sin(l),z:(r*(1-e)+u)*o}},i.geocentricToGeodetic=function(t,e,i,r){var o,s,a,l,h,u,c,_,p,d,f,v,m,g,y,b,x=t.x,w=t.y,k=t.z?t.z:0;if(o=Math.sqrt(x*x+w*w),s=Math.sqrt(x*x+w*w+k*k),o/i<1e-12){if(g=0,s/i<1e-12)return y=n,b=-r,{x:t.x,y:t.y,z:t.z}}else g=Math.atan2(w,x);a=k/s,l=o/s,h=1/Math.sqrt(1-e*(2-e)*l*l),_=l*(1-e)*h,p=a*h,m=0;do{m++,c=i/Math.sqrt(1-e*p*p),u=e*c/(c+(b=o*_+k*p-c*(1-e*p*p))),h=1/Math.sqrt(1-u*(2-u)*l*l),v=(f=a*h)*_-(d=l*(1-u)*h)*p,_=d,p=f}while(v*v>1e-24&&m<30);return y=Math.atan(f/Math.abs(d)),{x:g,y:y,z:b}},i.geocentricToWgs84=function(t,e,i){if(1===e)return{x:t.x+i[0],y:t.y+i[1],z:t.z+i[2]};if(2===e){var n=i[0],r=i[1],o=i[2],s=i[3],a=i[4],l=i[5],h=i[6];return{x:h*(t.x-l*t.y+a*t.z)+n,y:h*(l*t.x+t.y-s*t.z)+r,z:h*(-a*t.x+s*t.y+t.z)+o}}},i.geocentricFromWgs84=function(t,e,i){if(1===e)return{x:t.x-i[0],y:t.y-i[1],z:t.z-i[2]};if(2===e){var n=i[0],r=i[1],o=i[2],s=i[3],a=i[4],l=i[5],h=i[6],u=(t.x-n)/h,c=(t.y-r)/h,_=(t.z-o)/h;return{x:u+l*c-a*_,y:-l*u+c+s*_,z:a*u-s*c+_}}}},function(t,e,i){function n(t){return t===r||t===o}var r=1,o=2,s=t(352);e.exports=function(t,e,i){return s.compareDatums(t,e)?i:5===t.datum_type||5===e.datum_type?i:t.es!==e.es||t.a!==e.a||n(t.datum_type)||n(e.datum_type)?(i=s.geodeticToGeocentric(i,t.es,t.a),n(t.datum_type)&&(i=s.geocentricToWgs84(i,t.datum_type,t.datum_params)),n(e.datum_type)&&(i=s.geocentricFromWgs84(i,e.datum_type,e.datum_params)),s.geocentricToGeodetic(i,e.es,e.a,e.b)):i}},function(t,e,i){function n(t){var e=this;if(2===arguments.length){var i=arguments[1];n[t]=\"string\"==typeof i?\"+\"===i.charAt(0)?o(arguments[1]):s(arguments[1]):i}else if(1===arguments.length){if(Array.isArray(t))return t.map(function(t){Array.isArray(t)?n.apply(e,t):n(t)});if(\"string\"==typeof t){if(t in n)return n[t]}else\"EPSG\"in t?n[\"EPSG:\"+t.EPSG]=t:\"ESRI\"in t?n[\"ESRI:\"+t.ESRI]=t:\"IAU2000\"in t?n[\"IAU2000:\"+t.IAU2000]=t:console.log(t);return}}var r=t(357),o=t(359),s=t(364);r(n),e.exports=n},function(t,e,i){var n=t(347);i.eccentricity=function(t,e,i,n){var r=t*t,o=e*e,s=(r-o)/r,a=0;n?(r=(t*=1-s*(.16666666666666666+s*(.04722222222222222+.022156084656084655*s)))*t,s=0):a=Math.sqrt(s);var l=(r-o)/o;return{es:s,e:a,ep2:l}},i.sphere=function(t,e,i,r,o){if(!t){var s=n[r];s||(s=n.WGS84),t=s.a,e=s.b,i=s.rf}return i&&!e&&(e=(1-1/i)*t),(0===i||Math.abs(t-e)<1e-10)&&(o=!0,e=t),{a:t,b:e,rf:i,sphere:o}}},function(t,e,i){e.exports=function(t,e){t=t||{};var i,n;if(!e)return t;for(n in e)void 0!==(i=e[n])&&(t[n]=i);return t}},function(t,e,i){e.exports=function(t){t(\"EPSG:4326\",\"+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees\"),t(\"EPSG:4269\",\"+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees\"),t(\"EPSG:3857\",\"+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs\"),t.WGS84=t[\"EPSG:4326\"],t[\"EPSG:3785\"]=t[\"EPSG:3857\"],t.GOOGLE=t[\"EPSG:3857\"],t[\"EPSG:900913\"]=t[\"EPSG:3857\"],t[\"EPSG:102113\"]=t[\"EPSG:3857\"]}},function(t,e,i){var n=t(354),r=t(364),o=t(359),s=[\"GEOGCS\",\"GEOCCS\",\"PROJCS\",\"LOCAL_CS\"];e.exports=function(t){if(!function(t){return\"string\"==typeof t}(t))return t;if(function(t){return t in n}(t))return n[t];if(function(t){return s.some(function(e){return t.indexOf(e)>-1})}(t))return r(t);if(function(t){return\"+\"===t[0]}(t))return o(t)}},function(t,e,i){var n=.017453292519943295,r=t(348),o=t(349);e.exports=function(t){var e,i,s,a={},l=t.split(\"+\").map(function(t){return t.trim()}).filter(function(t){return t}).reduce(function(t,e){var i=e.split(\"=\");return i.push(!0),t[i[0].toLowerCase()]=i[1],t},{}),h={proj:\"projName\",datum:\"datumCode\",rf:function(t){a.rf=parseFloat(t)},lat_0:function(t){a.lat0=t*n},lat_1:function(t){a.lat1=t*n},lat_2:function(t){a.lat2=t*n},lat_ts:function(t){a.lat_ts=t*n},lon_0:function(t){a.long0=t*n},lon_1:function(t){a.long1=t*n},lon_2:function(t){a.long2=t*n},alpha:function(t){a.alpha=parseFloat(t)*n},lonc:function(t){a.longc=t*n},x_0:function(t){a.x0=parseFloat(t)},y_0:function(t){a.y0=parseFloat(t)},k_0:function(t){a.k0=parseFloat(t)},k:function(t){a.k0=parseFloat(t)},a:function(t){a.a=parseFloat(t)},b:function(t){a.b=parseFloat(t)},r_a:function(){a.R_A=!0},zone:function(t){a.zone=parseInt(t,10)},south:function(){a.utmSouth=!0},towgs84:function(t){a.datum_params=t.split(\",\").map(function(t){return parseFloat(t)})},to_meter:function(t){a.to_meter=parseFloat(t)},units:function(t){a.units=t,o[t]&&(a.to_meter=o[t].to_meter)},from_greenwich:function(t){a.from_greenwich=t*n},pm:function(t){a.from_greenwich=(r[t]?r[t]:parseFloat(t))*n},nadgrids:function(t){\"@null\"===t?a.datumCode=\"none\":a.nadgrids=t},axis:function(t){3===t.length&&-1!==\"ewnsud\".indexOf(t.substr(0,1))&&-1!==\"ewnsud\".indexOf(t.substr(1,1))&&-1!==\"ewnsud\".indexOf(t.substr(2,1))&&(a.axis=t)}};for(e in l)i=l[e],e in h?\"function\"==typeof(s=h[e])?s(i):a[s]=i:a[e]=i;return\"string\"==typeof a.datumCode&&\"WGS84\"!==a.datumCode&&(a.datumCode=a.datumCode.toLowerCase()),a}},function(t,e,i){function n(t,e){var i=s.length;return t.names?(s[i]=t,t.names.forEach(function(t){o[t.toLowerCase()]=i}),this):(console.log(e),!0)}var r=[t(362),t(361)],o={},s=[];i.add=n,i.get=function(t){if(!t)return!1;var e=t.toLowerCase();return void 0!==o[e]&&s[o[e]]?s[o[e]]:void 0},i.start=function(){r.forEach(n)}},function(t,e,i){function n(t){return t}i.init=function(){},i.forward=n,i.inverse=n,i.names=[\"longlat\",\"identity\"]},function(t,e,i){var n=t(341),r=Math.PI/2,o=57.29577951308232,s=t(340),a=Math.PI/4,l=t(345),h=t(342);i.init=function(){var t=this.b/this.a;this.es=1-t*t,\"x0\"in this||(this.x0=0),\"y0\"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=n(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)},i.forward=function(t){var e=t.x,i=t.y;if(i*o>90&&i*o<-90&&e*o>180&&e*o<-180)return null;var n,h;if(Math.abs(Math.abs(i)-r)<=1e-10)return null;if(this.sphere)n=this.x0+this.a*this.k0*s(e-this.long0),h=this.y0+this.a*this.k0*Math.log(Math.tan(a+.5*i));else{var u=Math.sin(i),c=l(this.e,i,u);n=this.x0+this.a*this.k0*s(e-this.long0),h=this.y0-this.a*this.k0*Math.log(c)}return t.x=n,t.y=h,t},i.inverse=function(t){var e,i,n=t.x-this.x0,o=t.y-this.y0;if(this.sphere)i=r-2*Math.atan(Math.exp(-o/(this.a*this.k0)));else{var a=Math.exp(-o/(this.a*this.k0));if(-9999===(i=h(this.e,a)))return null}return e=s(this.long0+n/(this.a*this.k0)),t.x=e,t.y=i,t},i.names=[\"Mercator\",\"Popular Visualisation Pseudo Mercator\",\"Mercator_1SP\",\"Mercator_Auxiliary_Sphere\",\"merc\"]},function(t,e,i){var n=1,r=2,o=t(353),s=t(339),a=t(338),l=t(344);e.exports=function t(e,i,h){var u;return Array.isArray(h)&&(h=l(h)),e.datum&&i.datum&&function(t,e){return(t.datum.datum_type===n||t.datum.datum_type===r)&&\"WGS84\"!==e.datumCode||(e.datum.datum_type===n||e.datum.datum_type===r)&&\"WGS84\"!==t.datumCode}(e,i)&&(u=new a(\"WGS84\"),h=t(e,u,h),e=u),\"enu\"!==e.axis&&(h=s(e,!1,h)),\"longlat\"===e.projName?h={x:.017453292519943295*h.x,y:.017453292519943295*h.y}:(e.to_meter&&(h={x:h.x*e.to_meter,y:h.y*e.to_meter}),h=e.inverse(h)),e.from_greenwich&&(h.x+=e.from_greenwich),h=o(e.datum,i.datum,h),i.from_greenwich&&(h={x:h.x-i.grom_greenwich,y:h.y}),\"longlat\"===i.projName?h={x:57.29577951308232*h.x,y:57.29577951308232*h.y}:(h=i.forward(h),i.to_meter&&(h={x:h.x/i.to_meter,y:h.y/i.to_meter})),\"enu\"!==i.axis?s(i,!0,h):h}},function(t,e,i){function n(t,e,i){t[e]=i.map(function(t){var e={};return r(t,e),e}).reduce(function(t,e){return a(t,e)},{})}function r(t,e){var i;Array.isArray(t)?(\"PARAMETER\"===(i=t.shift())&&(i=t.shift()),1===t.length?Array.isArray(t[0])?(e[i]={},r(t[0],e[i])):e[i]=t[0]:t.length?\"TOWGS84\"===i?e[i]=t:(e[i]={},[\"UNIT\",\"PRIMEM\",\"VERT_DATUM\"].indexOf(i)>-1?(e[i]={name:t[0].toLowerCase(),convert:t[1]},3===t.length&&(e[i].auth=t[2])):\"SPHEROID\"===i?(e[i]={name:t[0],a:t[1],rf:t[2]},4===t.length&&(e[i].auth=t[3])):[\"GEOGCS\",\"GEOCCS\",\"DATUM\",\"VERT_CS\",\"COMPD_CS\",\"LOCAL_CS\",\"FITTED_CS\",\"LOCAL_DATUM\"].indexOf(i)>-1?(t[0]=[\"name\",t[0]],n(e,i,t)):t.every(function(t){return Array.isArray(t)})?n(e,i,t):r(t,e[i])):e[i]=!0):e[t]=!0}function o(t){return t*s}var s=.017453292519943295,a=t(356);e.exports=function(t,e){var i=JSON.parse((\",\"+t).replace(/\\s*\\,\\s*([A-Z_0-9]+?)(\\[)/g,',[\"$1\",').slice(1).replace(/\\s*\\,\\s*([A-Z_0-9]+?)\\]/g,',\"$1\"]').replace(/,\\[\"VERTCS\".+/,\"\")),n=i.shift(),s=i.shift();i.unshift([\"name\",s]),i.unshift([\"type\",n]),i.unshift(\"output\");var l={};return r(i,l),function(t){function e(e){var i=t.to_meter||1;return parseFloat(e,10)*i}\"GEOGCS\"===t.type?t.projName=\"longlat\":\"LOCAL_CS\"===t.type?(t.projName=\"identity\",t.local=!0):\"object\"==typeof t.PROJECTION?t.projName=Object.keys(t.PROJECTION)[0]:t.projName=t.PROJECTION;t.UNIT&&(t.units=t.UNIT.name.toLowerCase(),\"metre\"===t.units&&(t.units=\"meter\"),t.UNIT.convert&&(\"GEOGCS\"===t.type?t.DATUM&&t.DATUM.SPHEROID&&(t.to_meter=parseFloat(t.UNIT.convert,10)*t.DATUM.SPHEROID.a):t.to_meter=parseFloat(t.UNIT.convert,10)));t.GEOGCS&&(t.GEOGCS.DATUM?t.datumCode=t.GEOGCS.DATUM.name.toLowerCase():t.datumCode=t.GEOGCS.name.toLowerCase(),\"d_\"===t.datumCode.slice(0,2)&&(t.datumCode=t.datumCode.slice(2)),\"new_zealand_geodetic_datum_1949\"!==t.datumCode&&\"new_zealand_1949\"!==t.datumCode||(t.datumCode=\"nzgd49\"),\"wgs_1984\"===t.datumCode&&(\"Mercator_Auxiliary_Sphere\"===t.PROJECTION&&(t.sphere=!0),t.datumCode=\"wgs84\"),\"_ferro\"===t.datumCode.slice(-6)&&(t.datumCode=t.datumCode.slice(0,-6)),\"_jakarta\"===t.datumCode.slice(-8)&&(t.datumCode=t.datumCode.slice(0,-8)),~t.datumCode.indexOf(\"belge\")&&(t.datumCode=\"rnb72\"),t.GEOGCS.DATUM&&t.GEOGCS.DATUM.SPHEROID&&(t.ellps=t.GEOGCS.DATUM.SPHEROID.name.replace(\"_19\",\"\").replace(/[Cc]larke\\_18/,\"clrk\"),\"international\"===t.ellps.toLowerCase().slice(0,13)&&(t.ellps=\"intl\"),t.a=t.GEOGCS.DATUM.SPHEROID.a,t.rf=parseFloat(t.GEOGCS.DATUM.SPHEROID.rf,10)),~t.datumCode.indexOf(\"osgb_1936\")&&(t.datumCode=\"osgb36\"));t.b&&!isFinite(t.b)&&(t.b=t.a);[[\"standard_parallel_1\",\"Standard_Parallel_1\"],[\"standard_parallel_2\",\"Standard_Parallel_2\"],[\"false_easting\",\"False_Easting\"],[\"false_northing\",\"False_Northing\"],[\"central_meridian\",\"Central_Meridian\"],[\"latitude_of_origin\",\"Latitude_Of_Origin\"],[\"latitude_of_origin\",\"Central_Parallel\"],[\"scale_factor\",\"Scale_Factor\"],[\"k0\",\"scale_factor\"],[\"latitude_of_center\",\"Latitude_of_center\"],[\"lat0\",\"latitude_of_center\",o],[\"longitude_of_center\",\"Longitude_Of_Center\"],[\"longc\",\"longitude_of_center\",o],[\"x0\",\"false_easting\",e],[\"y0\",\"false_northing\",e],[\"long0\",\"central_meridian\",o],[\"lat0\",\"latitude_of_origin\",o],[\"lat0\",\"standard_parallel_1\",o],[\"lat1\",\"standard_parallel_1\",o],[\"lat2\",\"standard_parallel_2\",o],[\"alpha\",\"azimuth\",o],[\"srsCode\",\"name\"]].forEach(function(e){return function(t,e){var i=e[0],n=e[1];!(i in t)&&n in t&&(t[i]=t[n],3===e.length&&(t[i]=e[2](t[i])))}(t,e)}),t.long0||!t.longc||\"Albers_Conic_Equal_Area\"!==t.projName&&\"Lambert_Azimuthal_Equal_Area\"!==t.projName||(t.long0=t.longc);t.lat_ts||!t.lat1||\"Stereographic_South_Pole\"!==t.projName&&\"Polar Stereographic (variant B)\"!==t.projName||(t.lat0=o(t.lat1>0?90:-90),t.lat_ts=t.lat1)}(l.output),a(e,l.output)}},function(t,e,i){function n(t,e,i,o,s){for(i=i||0,o=o||t.length-1,s=s||function(t,e){return te?1:0};o>i;){if(o-i>600){var a=o-i+1,l=e-i+1,h=Math.log(a),u=.5*Math.exp(2*h/3),c=.5*Math.sqrt(h*u*(a-u)/a)*(l-a/2<0?-1:1),_=Math.max(i,Math.floor(e-l*u/a+c)),p=Math.min(o,Math.floor(e+(a-l)*u/a+c));n(t,e,_,p,s)}var d=t[e],f=i,v=o;for(r(t,i,e),s(t[o],d)>0&&r(t,i,o);f0;)v--}0===s(t[i],d)?r(t,i,v):r(t,++v,o),v<=e&&(i=v+1),e<=v&&(o=v-1)}}function r(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}e.exports=n},function(t,e,i){function n(t,e){if(!(this instanceof n))return new n(t,e);this._maxEntries=Math.max(4,t||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),e&&this._initFormat(e),this.clear()}function r(t,e){o(t,0,t.children.length,e,t)}function o(t,e,i,n,r){r||(r=p(null)),r.minX=1/0,r.minY=1/0,r.maxX=-1/0,r.maxY=-1/0;for(var o,a=e;a=t.minX&&e.maxY>=t.minY}function p(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function d(t,e,i,n,r){for(var o,s=[e,i];s.length;)i=s.pop(),e=s.pop(),i-e<=n||(o=e+Math.ceil((i-e)/n/2)*n,f(t,o,e,i,r),s.push(e,o,o,i))}e.exports=n;var f=t(365);n.prototype={all:function(){return this._all(this.data,[])},search:function(t){var e=this.data,i=[],n=this.toBBox;if(!_(t,e))return i;for(var r,o,s,a,l=[];e;){for(r=0,o=e.children.length;r=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(r,o,e)},_split:function(t,e){var i=t[e],n=i.children.length,o=this._minEntries;this._chooseSplitAxis(i,o,n);var s=this._chooseSplitIndex(i,o,n),a=p(i.children.splice(s,i.children.length-s));a.height=i.height,a.leaf=i.leaf,r(i,this.toBBox),r(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(i,a)},_splitRoot:function(t,e){this.data=p([t,e]),this.data.height=t.height+1,this.data.leaf=!1,r(this.data,this.toBBox)},_chooseSplitIndex:function(t,e,i){var n,r,s,a,l,u,c,_;for(u=c=1/0,n=e;n<=i-e;n++)r=o(t,0,n,this.toBBox),s=o(t,n,i,this.toBBox),a=function(t,e){var i=Math.max(t.minX,e.minX),n=Math.max(t.minY,e.minY),r=Math.min(t.maxX,e.maxX),o=Math.min(t.maxY,e.maxY);return Math.max(0,r-i)*Math.max(0,o-n)}(r,s),l=h(r)+h(s),a=e;r--)a=t.children[r],s(c,t.leaf?l(a):a),_+=u(c);return _},_adjustParentBBoxes:function(t,e,i){for(var n=i;n>=0;n--)s(e[n],t)},_condense:function(t){for(var e,i=t.length-1;i>=0;i--)0===t[i].children.length?i>0?(e=t[i-1].children).splice(e.indexOf(t[i]),1):this.clear():r(t[i],this.toBBox)},_initFormat:function(t){var e=[\"return a\",\" - b\",\";\"];this.compareMinX=new Function(\"a\",\"b\",e.join(t[0])),this.compareMinY=new Function(\"a\",\"b\",e.join(t[1])),this.toBBox=new Function(\"a\",\"return {minX: a\"+t[0]+\", minY: a\"+t[1]+\", maxX: a\"+t[2]+\", maxY: a\"+t[3]+\"};\")}}},function(t,e,i){!function(){\"use strict\";function t(e){return function(e,i){var r,o,s,a,l,h,u,c,_,p=1,d=e.length,f=\"\";for(o=0;o=0),a[8]){case\"b\":r=parseInt(r,10).toString(2);break;case\"c\":r=String.fromCharCode(parseInt(r,10));break;case\"d\":case\"i\":r=parseInt(r,10);break;case\"j\":r=JSON.stringify(r,null,a[6]?parseInt(a[6]):0);break;case\"e\":r=a[7]?parseFloat(r).toExponential(a[7]):parseFloat(r).toExponential();break;case\"f\":r=a[7]?parseFloat(r).toFixed(a[7]):parseFloat(r);break;case\"g\":r=a[7]?String(Number(r.toPrecision(a[7]))):parseFloat(r);break;case\"o\":r=(parseInt(r,10)>>>0).toString(8);break;case\"s\":r=String(r),r=a[7]?r.substring(0,a[7]):r;break;case\"t\":r=String(!!r),r=a[7]?r.substring(0,a[7]):r;break;case\"T\":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=a[7]?r.substring(0,a[7]):r;break;case\"u\":r=parseInt(r,10)>>>0;break;case\"v\":r=r.valueOf(),r=a[7]?r.substring(0,a[7]):r;break;case\"x\":r=(parseInt(r,10)>>>0).toString(16);break;case\"X\":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}n.json.test(a[8])?f+=r:(!n.number.test(a[8])||c&&!a[3]?_=\"\":(_=c?\"+\":\"-\",r=r.toString().replace(n.sign,\"\")),h=a[4]?\"0\"===a[4]?\"0\":a[4].charAt(1):\" \",u=a[6]-(_+r).length,l=a[6]&&u>0?h.repeat(u):\"\",f+=a[5]?_+r+l:\"0\"===h?_+l+r:l+_+r)}return f}(function(t){if(r[t])return r[t];var e,i=t,o=[],s=0;for(;i;){if(null!==(e=n.text.exec(i)))o.push(e[0]);else if(null!==(e=n.modulo.exec(i)))o.push(\"%\");else{if(null===(e=n.placeholder.exec(i)))throw new SyntaxError(\"[sprintf] unexpected placeholder\");if(e[2]){s|=1;var a=[],l=e[2],h=[];if(null===(h=n.key.exec(l)))throw new SyntaxError(\"[sprintf] failed to parse named argument key\");for(a.push(h[1]);\"\"!==(l=l.substring(h[0].length));)if(null!==(h=n.key_access.exec(l)))a.push(h[1]);else{if(null===(h=n.index_access.exec(l)))throw new SyntaxError(\"[sprintf] failed to parse named argument key\");a.push(h[1])}e[2]=a}else s|=2;if(3===s)throw new Error(\"[sprintf] mixing positional and named placeholders is not (yet) supported\");o.push(e)}i=i.substring(e[0].length)}return r[t]=o}(e),arguments)}function e(e,i){return t.apply(null,[e].concat(i||[]))}var n={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\\x25]+/,modulo:/^\\x25{2}/,placeholder:/^\\x25(?:([1-9]\\d*)\\$|\\(([^\\)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\\d]*)/i,key_access:/^\\.([a-z_][a-z_\\d]*)/i,index_access:/^\\[(\\d+)\\]/,sign:/^[\\+\\-]/},r=Object.create(null);void 0!==i&&(i.sprintf=t,i.vsprintf=e),\"undefined\"!=typeof window&&(window.sprintf=t,window.vsprintf=e)}()},function(t,e,i){!function(t){\"object\"==typeof e&&e.exports?e.exports=t():this.tz=t()}(function(){function t(t,e,i){var n,r=e.day[1];do{n=new Date(Date.UTC(i,e.month,Math.abs(r++)))}while(e.day[0]<7&&n.getUTCDay()!=e.day[0]);return n={clock:e.clock,sort:n.getTime(),rule:e,save:6e4*e.save,offset:t.offset},n[n.clock]=n.sort+6e4*e.time,n.posix?n.wallclock=n[n.clock]+(t.offset+e.saved):n.posix=n[n.clock]-(t.offset+e.saved),n}function e(e,i,n){var r,o,s,a,l,h,u,c=e[e.zone],_=[],p=new Date(n).getUTCFullYear(),d=1;for(r=1,o=c.length;r=p-d;--u)for(r=0,o=h.length;r=_[r][i]&&_[r][_[r].clock]>s[_[r].clock]&&(a=_[r])}return a&&((l=/^(.*)\\/(.*)$/.exec(s.format))?a.abbrev=l[a.save?2:1]:a.abbrev=s.format.replace(/%s/,a.rule.letter)),a||s}function i(t,i){return\"UTC\"==t.zone?i:(t.entry=e(t,\"posix\",i),i+t.entry.offset+t.entry.save)}function n(t,i){if(\"UTC\"==t.zone)return i;var n,r;return t.entry=n=e(t,\"wallclock\",i),0<(r=i-n.wallclock)&&r9)e+=a*u[h-10];else{if(o=new Date(i(t,e)),h<7)for(;a;)o.setUTCDate(o.getUTCDate()+s),o.getUTCDay()==h&&(a-=s);else 7==h?o.setUTCFullYear(o.getUTCFullYear()+a):8==h?o.setUTCMonth(o.getUTCMonth()+a):o.setUTCDate(o.getUTCDate()+a);null==(e=n(t,o.getTime()))&&(e=n(t,o.getTime()+864e5*s)-864e5*s)}return e}function o(t,e){var i,n,r;return n=new Date(Date.UTC(t.getUTCFullYear(),0)),i=Math.floor((t.getTime()-n.getTime())/864e5),n.getUTCDay()==e?r=0:8==(r=7-n.getUTCDay()+e)&&(r=1),i>=r?Math.floor((i-r)/7)+1:0}function s(t){var e,i,n;return i=t.getUTCFullYear(),e=new Date(Date.UTC(i,0)).getUTCDay(),(n=o(t,1)+(e>1&&e<=4?1:0))?53!=n||4==e||3==e&&29==new Date(i,1,29).getDate()?[n,t.getUTCFullYear()]:[1,t.getUTCFullYear()+1]:(i=t.getUTCFullYear()-1,e=new Date(Date.UTC(i,0)).getUTCDay(),n=4==e||3==e&&29==new Date(i,1,29).getDate()?53:52,[n,t.getUTCFullYear()-1])}var a={clock:function(){return+new Date},zone:\"UTC\",entry:{abbrev:\"UTC\",offset:0,save:0},UTC:1,z:function(t,e,i,n){var r,o,s=this.entry.offset+this.entry.save,a=Math.abs(s/1e3),l=[],h=3600;for(r=0;r<3;r++)l.push((\"0\"+Math.floor(a/h)).slice(-2)),a%=h,h/=60;return\"^\"!=i||s?(\"^\"==i&&(n=3),3==n?(o=(o=l.join(\":\")).replace(/:00$/,\"\"),\"^\"!=i&&(o=o.replace(/:00$/,\"\"))):n?(o=l.slice(0,n+1).join(\":\"),\"^\"==i&&(o=o.replace(/:00$/,\"\"))):o=l.slice(0,2).join(\"\"),o=(s<0?\"-\":\"+\")+o,o=o.replace(/([-+])(0)/,{_:\" $1\",\"-\":\"$1\"}[i]||\"$1$2\")):\"Z\"},\"%\":function(t){return\"%\"},n:function(t){return\"\\n\"},t:function(t){return\"\\t\"},U:function(t){return o(t,0)},W:function(t){return o(t,1)},V:function(t){return s(t)[0]},G:function(t){return s(t)[1]},g:function(t){return s(t)[1]%100},j:function(t){return Math.floor((t.getTime()-Date.UTC(t.getUTCFullYear(),0))/864e5)+1},s:function(t){return Math.floor(t.getTime()/1e3)},C:function(t){return Math.floor(t.getUTCFullYear()/100)},N:function(t){return t.getTime()%1e3*1e6},m:function(t){return t.getUTCMonth()+1},Y:function(t){return t.getUTCFullYear()},y:function(t){return t.getUTCFullYear()%100},H:function(t){return t.getUTCHours()},M:function(t){return t.getUTCMinutes()},S:function(t){return t.getUTCSeconds()},e:function(t){return t.getUTCDate()},d:function(t){return t.getUTCDate()},u:function(t){return t.getUTCDay()||7},w:function(t){return t.getUTCDay()},l:function(t){return t.getUTCHours()%12||12},I:function(t){return t.getUTCHours()%12||12},k:function(t){return t.getUTCHours()},Z:function(t){return this.entry.abbrev},a:function(t){return this[this.locale].day.abbrev[t.getUTCDay()]},A:function(t){return this[this.locale].day.full[t.getUTCDay()]},h:function(t){return this[this.locale].month.abbrev[t.getUTCMonth()]},b:function(t){return this[this.locale].month.abbrev[t.getUTCMonth()]},B:function(t){return this[this.locale].month.full[t.getUTCMonth()]},P:function(t){return this[this.locale].meridiem[Math.floor(t.getUTCHours()/12)].toLowerCase()},p:function(t){return this[this.locale].meridiem[Math.floor(t.getUTCHours()/12)]},R:function(t,e){return this.convert([e,\"%H:%M\"])},T:function(t,e){return this.convert([e,\"%H:%M:%S\"])},D:function(t,e){return this.convert([e,\"%m/%d/%y\"])},F:function(t,e){return this.convert([e,\"%Y-%m-%d\"])},x:function(t,e){return this.convert([e,this[this.locale].date])},r:function(t,e){return this.convert([e,this[this.locale].time12||\"%I:%M:%S\"])},X:function(t,e){return this.convert([e,this[this.locale].time24])},c:function(t,e){return this.convert([e,this[this.locale].dateTime])},convert:function(t){if(!t.length)return\"1.0.13\";var e,o,s,a,l,u=Object.create(this),c=[];for(e=0;e=0;a--)(r=t[a])&&(s=(o<3?r(s):o>3?r(e,i,s):r(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s},a=function(t,e){return function(i,n){e(i,n,t)}},l=function(t,e){if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.metadata)return Reflect.metadata(t,e)},h=function(t,e,i,n){return new(i||(i=Promise))(function(r,o){function s(t){try{l(n.next(t))}catch(t){o(t)}}function a(t){try{l(n.throw(t))}catch(t){o(t)}}function l(t){t.done?r(t.value):new i(function(e){e(t.value)}).then(s,a)}l((n=n.apply(t,e||[])).next())})},u=function(t,e){function i(i){return function(s){return function(i){if(n)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(n=1,r&&(o=r[2&i[0]?\"return\":i[0]?\"throw\":\"next\"])&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[0,o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(o=a.trys,!(o=o.length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}}},p=function(t,e){var i=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!i)return t;var n,r,o=i.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(n=o.next()).done;)s.push(n.value)}catch(t){r={error:t}}finally{try{n&&!n.done&&(i=o.return)&&i.call(o)}finally{if(r)throw r.error}}return s},d=function(){for(var t=[],e=0;e1||r(t,e)})})}function r(t,e){try{!function(t){t.value instanceof f?Promise.resolve(t.value.v).then(o,s):a(u[0][2],t)}(h[t](e))}catch(t){a(u[0][3],t)}}function o(t){r(\"next\",t)}function s(t){r(\"throw\",t)}function a(t,e){t(e),u.shift(),u.length&&r(u[0][0],u[0][1])}if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var l,h=i.apply(t,e||[]),u=[];return l={},n(\"next\"),n(\"throw\"),n(\"return\"),l[Symbol.asyncIterator]=function(){return this},l},m=function(t){function e(e,r){t[e]&&(i[e]=function(i){return(n=!n)?{value:f(t[e](i)),done:\"return\"===e}:r?r(i):i})}var i,n;return i={},e(\"next\"),e(\"throw\",function(t){throw t}),e(\"return\"),i[Symbol.iterator]=function(){return this},i},g=function(t){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var e=t[Symbol.asyncIterator];return e?e.call(t):\"function\"==typeof _?_(t):t[Symbol.iterator]()},y=function(t,e){return Object.defineProperty?Object.defineProperty(t,\"raw\",{value:e}):t.raw=e,t},t(\"__extends\",n),t(\"__assign\",r),t(\"__rest\",o),t(\"__decorate\",s),t(\"__param\",a),t(\"__metadata\",l),t(\"__awaiter\",h),t(\"__generator\",u),t(\"__exportStar\",c),t(\"__values\",_),t(\"__read\",p),t(\"__spread\",d),t(\"__await\",f),t(\"__asyncGenerator\",v),t(\"__asyncDelegator\",m),t(\"__asyncValues\",g),t(\"__makeTemplateObject\",y)})}],{base:0,\"client/connection\":1,\"client/session\":2,\"core/bokeh_events\":3,\"core/build_views\":4,\"core/dom\":5,\"core/dom_view\":6,\"core/enums\":7,\"core/has_props\":8,\"core/hittest\":9,\"core/layout/alignments\":10,\"core/layout/layout_canvas\":11,\"core/layout/side_panel\":12,\"core/layout/solver\":13,\"core/logging\":14,\"core/properties\":15,\"core/property_mixins\":16,\"core/selection_manager\":17,\"core/selector\":18,\"core/settings\":19,\"core/signaling\":20,\"core/ui_events\":21,\"core/util/array\":22,\"core/util/assert\":23,\"core/util/bbox\":24,\"core/util/callback\":25,\"core/util/canvas\":26,\"core/util/color\":27,\"core/util/data_structures\":28,\"core/util/eq\":29,\"core/util/math\":30,\"core/util/object\":31,\"core/util/proj4\":32,\"core/util/projections\":33,\"core/util/refs\":34,\"core/util/selection\":35,\"core/util/serialization\":36,\"core/util/spatial\":37,\"core/util/string\":38,\"core/util/svg_colors\":39,\"core/util/templating\":40,\"core/util/text\":41,\"core/util/throttle\":42,\"core/util/types\":43,\"core/util/wheel\":44,\"core/util/zoom\":45,\"core/view\":46,\"core/visuals\":47,document:48,embed:49,main:50,model:51,\"models/annotations/annotation\":52,\"models/annotations/arrow\":53,\"models/annotations/arrow_head\":54,\"models/annotations/band\":55,\"models/annotations/box_annotation\":56,\"models/annotations/color_bar\":57,\"models/annotations/index\":58,\"models/annotations/label\":59,\"models/annotations/label_set\":60,\"models/annotations/legend\":61,\"models/annotations/legend_item\":62,\"models/annotations/poly_annotation\":63,\"models/annotations/span\":64,\"models/annotations/text_annotation\":65,\"models/annotations/title\":66,\"models/annotations/toolbar_panel\":67,\"models/annotations/tooltip\":68,\"models/annotations/whisker\":69,\"models/axes/axis\":70,\"models/axes/categorical_axis\":71,\"models/axes/continuous_axis\":72,\"models/axes/datetime_axis\":73,\"models/axes/index\":74,\"models/axes/linear_axis\":75,\"models/axes/log_axis\":76,\"models/callbacks/customjs\":77,\"models/callbacks/index\":78,\"models/callbacks/open_url\":79,\"models/canvas/canvas\":80,\"models/canvas/cartesian_frame\":81,\"models/canvas/index\":82,\"models/expressions/expression\":83,\"models/expressions/index\":84,\"models/expressions/stack\":85,\"models/filters/boolean_filter\":86,\"models/filters/customjs_filter\":87,\"models/filters/filter\":88,\"models/filters/group_filter\":89,\"models/filters/index\":90,\"models/filters/index_filter\":91,\"models/formatters/basic_tick_formatter\":92,\"models/formatters/categorical_tick_formatter\":93,\"models/formatters/datetime_tick_formatter\":94,\"models/formatters/func_tick_formatter\":95,\"models/formatters/index\":96,\"models/formatters/log_tick_formatter\":97,\"models/formatters/mercator_tick_formatter\":98,\"models/formatters/numeral_tick_formatter\":99,\"models/formatters/printf_tick_formatter\":100,\"models/formatters/tick_formatter\":101,\"models/glyphs/annular_wedge\":102,\"models/glyphs/annulus\":103,\"models/glyphs/arc\":104,\"models/glyphs/bezier\":105,\"models/glyphs/box\":106,\"models/glyphs/circle\":107,\"models/glyphs/ellipse\":108,\"models/glyphs/glyph\":109,\"models/glyphs/hbar\":110,\"models/glyphs/image\":111,\"models/glyphs/image_rgba\":112,\"models/glyphs/image_url\":113,\"models/glyphs/index\":114,\"models/glyphs/line\":115,\"models/glyphs/multi_line\":116,\"models/glyphs/oval\":117,\"models/glyphs/patch\":118,\"models/glyphs/patches\":119,\"models/glyphs/quad\":120,\"models/glyphs/quadratic\":121,\"models/glyphs/ray\":122,\"models/glyphs/rect\":123,\"models/glyphs/segment\":124,\"models/glyphs/step\":125,\"models/glyphs/text\":126,\"models/glyphs/vbar\":127,\"models/glyphs/wedge\":128,\"models/glyphs/xy_glyph\":129,\"models/graphs/graph_hit_test_policy\":130,\"models/graphs/index\":131,\"models/graphs/layout_provider\":132,\"models/graphs/static_layout_provider\":133,\"models/grids/grid\":134,\"models/grids/index\":135,\"models/index\":136,\"models/layouts/box\":137,\"models/layouts/column\":138,\"models/layouts/index\":139,\"models/layouts/layout_dom\":140,\"models/layouts/row\":141,\"models/layouts/spacer\":142,\"models/layouts/widget_box\":143,\"models/mappers/categorical_color_mapper\":144,\"models/mappers/color_mapper\":145,\"models/mappers/index\":146,\"models/mappers/linear_color_mapper\":147,\"models/mappers/log_color_mapper\":148,\"models/markers/index\":149,\"models/markers/marker\":150,\"models/plots/gmap_plot\":151,\"models/plots/gmap_plot_canvas\":152,\"models/plots/index\":153,\"models/plots/plot\":154,\"models/plots/plot_canvas\":155,\"models/ranges/data_range\":156,\"models/ranges/data_range1d\":157,\"models/ranges/factor_range\":158,\"models/ranges/index\":159,\"models/ranges/range\":160,\"models/ranges/range1d\":161,\"models/renderers/glyph_renderer\":162,\"models/renderers/graph_renderer\":163,\"models/renderers/guide_renderer\":164,\"models/renderers/index\":165,\"models/renderers/renderer\":166,\"models/scales/categorical_scale\":167,\"models/scales/index\":168,\"models/scales/linear_scale\":169,\"models/scales/log_scale\":170,\"models/scales/scale\":171,\"models/sources/ajax_data_source\":172,\"models/sources/cds_view\":173,\"models/sources/column_data_source\":174,\"models/sources/columnar_data_source\":175,\"models/sources/data_source\":176,\"models/sources/geojson_data_source\":177,\"models/sources/index\":178,\"models/sources/remote_data_source\":179,\"models/tickers/adaptive_ticker\":180,\"models/tickers/basic_ticker\":181,\"models/tickers/categorical_ticker\":182,\"models/tickers/composite_ticker\":183,\"models/tickers/continuous_ticker\":184,\"models/tickers/datetime_ticker\":185,\"models/tickers/days_ticker\":186,\"models/tickers/fixed_ticker\":187,\"models/tickers/index\":188,\"models/tickers/log_ticker\":189,\"models/tickers/mercator_ticker\":190,\"models/tickers/months_ticker\":191,\"models/tickers/single_interval_ticker\":192,\"models/tickers/ticker\":193,\"models/tickers/util\":194,\"models/tickers/years_ticker\":195,\"models/tiles/bbox_tile_source\":196,\"models/tiles/image_pool\":197,\"models/tiles/image_source\":198,\"models/tiles/index\":199,\"models/tiles/mercator_tile_source\":200,\"models/tiles/quadkey_tile_source\":201,\"models/tiles/tile_renderer\":202,\"models/tiles/tile_source\":203,\"models/tiles/tile_utils\":204,\"models/tiles/tms_tile_source\":205,\"models/tiles/wmts_tile_source\":206,\"models/tools/actions/action_tool\":207,\"models/tools/actions/help_tool\":208,\"models/tools/actions/redo_tool\":209,\"models/tools/actions/reset_tool\":210,\"models/tools/actions/save_tool\":211,\"models/tools/actions/undo_tool\":212,\"models/tools/actions/zoom_in_tool\":213,\"models/tools/actions/zoom_out_tool\":214,\"models/tools/button_tool\":215,\"models/tools/edit/box_edit_tool\":216,\"models/tools/edit/edit_tool\":217,\"models/tools/edit/point_draw_tool\":218,\"models/tools/edit/poly_draw_tool\":219,\"models/tools/edit/poly_edit_tool\":220,\"models/tools/gestures/box_select_tool\":221,\"models/tools/gestures/box_zoom_tool\":222,\"models/tools/gestures/gesture_tool\":223,\"models/tools/gestures/lasso_select_tool\":224,\"models/tools/gestures/pan_tool\":225,\"models/tools/gestures/poly_select_tool\":226,\"models/tools/gestures/select_tool\":227,\"models/tools/gestures/tap_tool\":228,\"models/tools/gestures/wheel_pan_tool\":229,\"models/tools/gestures/wheel_zoom_tool\":230,\"models/tools/index\":231,\"models/tools/inspectors/crosshair_tool\":232,\"models/tools/inspectors/hover_tool\":233,\"models/tools/inspectors/inspect_tool\":234,\"models/tools/on_off_button\":235,\"models/tools/tool\":236,\"models/tools/tool_proxy\":237,\"models/tools/toolbar\":238,\"models/tools/toolbar_base\":239,\"models/tools/toolbar_box\":240,\"models/transforms/customjs_transform\":241,\"models/transforms/dodge\":242,\"models/transforms/index\":243,\"models/transforms/interpolator\":244,\"models/transforms/jitter\":245,\"models/transforms/linear_interpolator\":246,\"models/transforms/step_interpolator\":247,\"models/transforms/transform\":248,polyfill:249,\"protocol/message\":250,\"protocol/receiver\":251,safely:252,version:253})}(this);/*!\n", " Copyright (c) 2012, Anaconda, Inc.\n", " All rights reserved.\n", " \n", " Redistribution and use in source and binary forms, with or without modification,\n", " are permitted provided that the following conditions are met:\n", " \n", " Redistributions of source code must retain the above copyright notice,\n", " this list of conditions and the following disclaimer.\n", " \n", " Redistributions in binary form must reproduce the above copyright notice,\n", " this list of conditions and the following disclaimer in the documentation\n", " and/or other materials provided with the distribution.\n", " \n", " Neither the name of Anaconda nor the names of any contributors\n", " may be used to endorse or promote products derived from this software\n", " without specific prior written permission.\n", " \n", " THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n", " AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n", " IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n", " ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n", " LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n", " CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n", " SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n", " INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n", " CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n", " ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\n", " THE POSSIBILITY OF SUCH DAMAGE.\n", " */\n", " \n", " //# sourceMappingURL=bokeh.min.js.map\n", " \n", " /* END bokeh.min.js */\n", " },\n", " \n", " function(Bokeh) {\n", " /* BEGIN bokeh-widgets.min.js */\n", " !function(t,e){!function(t){(function(e,n,i){if(null!=t)return t.register_plugin(e,n,393);throw new Error(\"Cannot find Bokeh. You have to load it prior to loading plugins.\")})({378:function(t,e,n){var i=t(369),r=t(15),o=t(5),s=t(4),a=t(418),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i.__extends(e,t),e.prototype.initialize=function(e){t.prototype.initialize.call(this,e),this.icon_views={},this.render()},e.prototype.connect_signals=function(){var e=this;t.prototype.connect_signals.call(this),this.connect(this.model.change,function(){return e.render()})},e.prototype.remove=function(){s.remove_views(this.icon_views),t.prototype.remove.call(this)},e.prototype._render_button=function(){for(var t=[],e=0;ei||this._o.position.indexOf(\"right\")>-1&&a-e+t.offsetWidth>0)&&(a=a-e+t.offsetWidth),(this._o.reposition&&l+n>r+o||this._o.position.indexOf(\"top\")>-1&&l-n-t.offsetHeight>0)&&(l=l-n-t.offsetHeight),this.el.style.left=a+\"px\",this.el.style.top=l+\"px\"}};var l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i.__extends(e,t),e.prototype.css_classes=function(){return t.prototype.css_classes.call(this).concat(\"bk-widget-form-group\")},e.prototype.render=function(){var e=this;t.prototype.render.call(this),null!=this._picker&&this._picker.destroy(),o.empty(this.el),this.labelEl=o.label({},this.model.title),this.el.appendChild(this.labelEl),this.inputEl=o.input({type:\"text\",class:\"bk-widget-form-input\",disabled:this.model.disabled}),this.el.appendChild(this.inputEl),this._picker=new a({field:this.inputEl,defaultDate:new Date(this.model.value),setDefaultDate:!0,minDate:null!=this.model.min_date?new Date(this.model.min_date):void 0,maxDate:null!=this.model.max_date?new Date(this.model.max_date):void 0,onSelect:function(t){return e._on_select(t)}}),this._root_element.appendChild(this._picker.el)},e.prototype._on_select=function(t){this.model.value=t.toDateString(),this.change_input()},e}(r.InputWidgetView);n.DatePickerView=l;var u=function(t){function e(e,n){return t.call(this,e,n)||this}return i.__extends(e,t),e.initClass=function(){this.prototype.type=\"DatePicker\",this.prototype.default_view=l,this.define({value:[s.Any,(new Date).toDateString()],min_date:[s.Any],max_date:[s.Any]})},e}(r.InputWidget);n.DatePicker=u,u.initClass()},387:function(t,e,n){var i=t(369),r=t(368),o=t(380),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i.__extends(e,t),e.prototype._calc_to=function(){return{start:this.model.start,end:this.model.end,value:this.model.value,step:this.model.step}},e.prototype._calc_from=function(t){return t},e}(o.AbstractSliderView);n.DateRangeSliderView=s;var a=function(t){function e(e,n){var i=t.call(this,e,n)||this;return i.behaviour=\"drag\",i.connected=[!1,!0,!1],i._formatter=r,i}return i.__extends(e,t),e.initClass=function(){this.prototype.type=\"DateRangeSlider\",this.prototype.default_view=s,this.override({format:\"%d %b %Y\"})},e}(o.AbstractSlider);n.DateRangeSlider=a,a.initClass()},388:function(t,e,n){var i=t(369),r=t(368),o=t(380),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i.__extends(e,t),e.prototype._calc_to=function(){return{start:this.model.start,end:this.model.end,value:[this.model.value],step:this.model.step}},e.prototype._calc_from=function(t){var e=t[0];return e},e}(o.AbstractSliderView);n.DateSliderView=s;var a=function(t){function e(e,n){var i=t.call(this,e,n)||this;return i.behaviour=\"tap\",i.connected=[!0,!1],i._formatter=r,i}return i.__extends(e,t),e.initClass=function(){this.prototype.type=\"DateSlider\",this.prototype.default_view=s,this.override({format:\"%d %b %Y\"})},e}(o.AbstractSlider);n.DateSlider=a,a.initClass()},389:function(t,e,n){var i=t(369),r=t(394),o=t(5),s=t(15),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i.__extends(e,t),e.prototype.render=function(){t.prototype.render.call(this);var e=o.div();this.model.render_as_text?e.textContent=this.model.text:e.innerHTML=this.model.text,this.markupEl.appendChild(e)},e}(r.MarkupView);n.DivView=a;var l=function(t){function e(e,n){return t.call(this,e,n)||this}return i.__extends(e,t),e.initClass=function(){this.prototype.type=\"Div\",this.prototype.default_view=a,this.define({render_as_text:[s.Bool,!1]})},e}(r.Markup);n.Div=l,l.initClass()},390:function(t,e,n){var i=t(369),r=t(5),o=t(15),s=t(378),a=t(385),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i.__extends(e,t),e.prototype.connect_signals=function(){var e=this;t.prototype.connect_signals.call(this),a.clear_menus.connect(function(){return e._clear_menu()})},e.prototype.render=function(){var e=this;if(t.prototype.render.call(this),this.model.is_split_button){this.el.classList.add(\"bk-bs-btn-group\");var n=this._render_button(r.span({class:\"bk-bs-caret\"}));n.classList.add(\"bk-bs-dropdown-toggle\"),n.addEventListener(\"click\",function(t){return e._caret_click(t)}),this.el.appendChild(n)}else this.el.classList.add(\"bk-bs-dropdown\"),this.buttonEl.classList.add(\"bk-bs-dropdown-toggle\"),this.buttonEl.appendChild(r.span({class:\"bk-bs-caret\"}));this.model.active&&this.el.classList.add(\"bk-bs-open\");for(var i=[],o=0,s=this.model.menu;o=n&&(this.model.active=n-1);var i=this.model.tabs.map(function(t,e){return r.li({},r.span({data:{index:e}},t.title))});i[this.model.active].classList.add(\"bk-bs-active\");var s=r.ul({class:[\"bk-bs-nav\",\"bk-bs-nav-tabs\"]},i);this.el.appendChild(s);var a=this.model.tabs.map(function(t){return r.div({class:\"bk-bs-tab-pane\"})});a[this.model.active].classList.add(\"bk-bs-active\");var l=r.div({class:\"bk-bs-tab-content\"},a);this.el.appendChild(l),s.addEventListener(\"click\",function(t){if(t.preventDefault(),t.target!=t.currentTarget){var n=t.target,r=e.model.active,o=parseInt(n.dataset.index);r!=o&&(i[r].classList.remove(\"bk-bs-active\"),a[r].classList.remove(\"bk-bs-active\"),i[o].classList.add(\"bk-bs-active\"),a[o].classList.add(\"bk-bs-active\"),e.model.active=o,null!=e.model.callback&&e.model.callback.execute(e.model))}});for(var u=0,c=o.zip(this.model.children,a);u0&&(o(t,e),setTimeout(function(){s(t,e)},n))}function i(t){return Array.isArray(t)?t:[t]}function r(t){var e=(t=String(t)).split(\".\");return e.length>1?e[1].length:0}function o(t,e){t.classList?t.classList.add(e):t.className+=\" \"+e}function s(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(new RegExp(\"(^|\\\\b)\"+e.split(\" \").join(\"|\")+\"(\\\\b|$)\",\"gi\"),\" \")}function a(t){var e=void 0!==window.pageXOffset,n=\"CSS1Compat\"===(t.compatMode||\"\"),i=e?window.pageXOffset:n?t.documentElement.scrollLeft:t.body.scrollLeft,r=e?window.pageYOffset:n?t.documentElement.scrollTop:t.body.scrollTop;return{x:i,y:r}}function l(t,e){return 100/(e-t)}function u(t,e){return 100*e/(t[1]-t[0])}function c(t,e){for(var n=1;t>=e[n];)n+=1;return n}function d(t,e,n){if(n>=t.slice(-1)[0])return 100;var i,r,o,s,a=c(n,t);return i=t[a-1],r=t[a],o=e[a-1],s=e[a],o+function(t,e){return u(t,t[0]<0?e+Math.abs(t[0]):e-t[0])}([i,r],n)/l(o,s)}function h(t,e,n,i){if(100===i)return i;var r,o,s=c(i,t);return n?(r=t[s-1],o=t[s],i-r>(o-r)/2?o:r):e[s-1]?t[s-1]+function(t,e){return Math.round(t/e)*e}(i-t[s-1],e[s-1]):i}function p(t,n,i){var r;if(\"number\"==typeof n&&(n=[n]),\"[object Array]\"!==Object.prototype.toString.call(n))throw new Error(\"noUiSlider (\"+B+\"): 'range' contains invalid value.\");if(r=\"min\"===t?0:\"max\"===t?100:parseFloat(t),!e(r)||!e(n[0]))throw new Error(\"noUiSlider (\"+B+\"): 'range' value isn't numeric.\");i.xPct.push(r),i.xVal.push(n[0]),r?i.xSteps.push(!isNaN(n[1])&&n[1]):isNaN(n[1])||(i.xSteps[0]=n[1]),i.xHighestCompleteStep.push(0)}function f(t,e,n){if(!e)return!0;n.xSteps[t]=u([n.xVal[t],n.xVal[t+1]],e)/l(n.xPct[t],n.xPct[t+1]);var i=(n.xVal[t+1]-n.xVal[t])/n.xNumSteps[t],r=Math.ceil(Number(i.toFixed(3))-1),o=n.xVal[t]+n.xNumSteps[t]*r;n.xHighestCompleteStep[t]=o}function m(t,e,n){this.xPct=[],this.xVal=[],this.xSteps=[n||!1],this.xNumSteps=[!1],this.xHighestCompleteStep=[],this.snap=e;var i,r=[];for(i in t)t.hasOwnProperty(i)&&r.push([t[i],i]);for(r.length&&\"object\"==typeof r[0][0]?r.sort(function(t,e){return t[0][0]-e[0][0]}):r.sort(function(t,e){return t[0]-e[0]}),i=0;i=50)throw new Error(\"noUiSlider (\"+B+\"): 'padding' option must be less than half the range.\")}}function M(t,e){switch(e){case\"ltr\":t.dir=0;break;case\"rtl\":t.dir=1;break;default:throw new Error(\"noUiSlider (\"+B+\"): 'direction' option was not recognized.\")}}function A(t,e){if(\"string\"!=typeof e)throw new Error(\"noUiSlider (\"+B+\"): 'behaviour' must be a string containing options.\");var n=e.indexOf(\"tap\")>=0,i=e.indexOf(\"drag\")>=0,r=e.indexOf(\"fixed\")>=0,o=e.indexOf(\"snap\")>=0,s=e.indexOf(\"hover\")>=0;if(r){if(2!==t.handles)throw new Error(\"noUiSlider (\"+B+\"): 'fixed' behaviour must be used with 2 handles\");C(t,t.start[1]-t.start[0])}t.events={tap:n||o,drag:i,fixed:r,snap:o,hover:s}}function N(t,e){if(t.multitouch=e,\"boolean\"!=typeof e)throw new Error(\"noUiSlider (\"+B+\"): 'multitouch' option must be a boolean.\")}function V(t,e){if(!1!==e)if(!0===e){t.tooltips=[];for(var n=0;n-1?1:\"steps\"===e?2:0,!s&&a&&(m=0),d===_&&l||(r[p.toFixed(5)]=[d,m]),u=p}}),r}(n,e,s),l=t.format||{to:Math.round};return j=q.appendChild(p(a,i,l))}function v(){var t=T.getBoundingClientRect(),e=\"offset\"+[\"Width\",\"Height\"][r.ort];return 0===r.ort?t.width||T[e]:t.height||T[e]}function g(t,e,n,i){var o=function(o){return!q.hasAttribute(\"disabled\")&&(!function(t,e){return t.classList?t.classList.contains(e):new RegExp(\"\\\\b\"+e+\"\\\\b\").test(t.className)}(q,r.cssClasses.tap)&&(!!(o=function(t,e,n){var i,o,s=0===t.type.indexOf(\"touch\"),l=0===t.type.indexOf(\"mouse\"),u=0===t.type.indexOf(\"pointer\");0===t.type.indexOf(\"MSPointer\")&&(u=!0);if(s&&r.multitouch){var c=function(t){return t.target===n||n.contains(t.target)};if(\"touchstart\"===t.type){var d=Array.prototype.filter.call(t.touches,c);if(d.length>1)return!1;i=d[0].pageX,o=d[0].pageY}else{var h=Array.prototype.find.call(t.changedTouches,c);if(!h)return!1;i=h.pageX,o=h.pageY}}else if(s){if(t.touches.length>1)return!1;i=t.changedTouches[0].pageX,o=t.changedTouches[0].pageY}e=e||a(Z),(l||u)&&(i=t.clientX+e.x,o=t.clientY+e.y);return t.pageOffset=e,t.points=[i,o],t.cursor=l||u,t}(o,i.pageOffset,i.target||e))&&(!(t===F.start&&void 0!==o.buttons&&o.buttons>1)&&((!i.hover||!o.buttons)&&(H||o.preventDefault(),o.calcPoint=o.points[r.ort],void n(o,i))))))},s=[];return t.split(\" \").forEach(function(t){e.addEventListener(t,o,!!H&&{passive:!0}),s.push([t,o])}),s}function y(t){var e=t-function(t,e){var n=t.getBoundingClientRect(),i=t.ownerDocument,r=i.documentElement,o=a(i);/webkit.*Chrome.*Mobile/i.test(navigator.userAgent)&&(o.x=0);return e?n.top+o.y-r.clientTop:n.left+o.x-r.clientLeft}(T,r.ort),n=100*e/v();return r.dir?100-n:n}function b(t,e,n,i){var r=n.slice(),o=[!t,t],s=[t,!t];i=i.slice(),t&&i.reverse(),i.length>1?i.forEach(function(t,n){var i=D(r,t,r[t]+e,o[n],s[n],!1);!1===i?e=0:(e=i-r[t],r[t]=i)}):o=s=[!0];var a=!1;i.forEach(function(t,i){a=N(t,n[t]+e,o[i],s[i])||a}),a&&i.forEach(function(t){_(\"update\",t),_(\"slide\",t)})}function _(t,e,n){Object.keys(Q).forEach(function(i){var o=i.split(\".\")[0];t===o&&Q[i].forEach(function(t){t.call(z,$.map(r.format.to),e,$.slice(),n||!1,G.slice())})})}function w(t,e){\"mouseout\"===t.type&&\"HTML\"===t.target.nodeName&&null===t.relatedTarget&&k(t,e)}function x(t,e){if(-1===navigator.appVersion.indexOf(\"MSIE 9\")&&0===t.buttons&&0!==e.buttonsProperty)return k(t,e);var n=(r.dir?-1:1)*(t.calcPoint-e.startCalcPoint),i=100*n/e.baseSize;b(n>0,i,e.locations,e.handleNumbers)}function k(e,n){n.handle&&(s(n.handle,r.cssClasses.active),K-=1),n.listeners.forEach(function(t){tt.removeEventListener(t[0],t[1])}),0===K&&(s(q,r.cssClasses.drag),A(),e.cursor&&(et.style.cursor=\"\",et.removeEventListener(\"selectstart\",t))),n.handleNumbers.forEach(function(t){_(\"change\",t),_(\"set\",t),_(\"end\",t)})}function S(e,n){var i;if(1===n.handleNumbers.length){var s=W[n.handleNumbers[0]];if(s.hasAttribute(\"disabled\"))return!1;i=s.children[0],K+=1,o(i,r.cssClasses.active)}e.stopPropagation();var a=[],l=g(F.move,tt,x,{target:e.target,handle:i,listeners:a,startCalcPoint:e.calcPoint,baseSize:v(),pageOffset:e.pageOffset,handleNumbers:n.handleNumbers,buttonsProperty:e.buttons,locations:G.slice()}),u=g(F.end,tt,k,{target:e.target,handle:i,listeners:a,handleNumbers:n.handleNumbers}),c=g(\"mouseout\",tt,w,{target:e.target,handle:i,listeners:a,handleNumbers:n.handleNumbers});a.push.apply(a,l.concat(u,c)),e.cursor&&(et.style.cursor=getComputedStyle(e.target).cursor,W.length>1&&o(q,r.cssClasses.drag),et.addEventListener(\"selectstart\",t,!1)),n.handleNumbers.forEach(function(t){_(\"start\",t)})}function C(t){t.stopPropagation();var e=y(t.calcPoint),i=function(t){var e=100,n=!1;return W.forEach(function(i,r){if(!i.hasAttribute(\"disabled\")){var o=Math.abs(G[r]-t);o1&&(i&&e>0&&(n=Math.max(n,t[e-1]+r.margin)),o&&e1&&r.limit&&(i&&e>0&&(n=Math.min(n,t[e-1]+r.limit)),o&&e50?-1:1,n=3+(W.length+e*t);W[t].childNodes[0].style.zIndex=n})}function N(t,e,n,i){return!1!==(e=D(G,t,e,n,i,!1))&&(function(t,e){G[t]=e,$[t]=J.fromStepping(e);var n=function(){W[t].style[r.style]=M(e),V(t),V(t+1)};window.requestAnimationFrame&&r.useRequestAnimationFrame?window.requestAnimationFrame(n):n()}(t,e),!0)}function V(t){if(U[t]){var e=0,n=100;0!==t&&(e=G[t-1]),t!==U.length-1&&(n=G[t]),U[t].style[r.style]=M(e),U[t].style[r.styleOposite]=M(100-n)}}function I(t,e){null!==t&&!1!==t&&(\"number\"==typeof t&&(t=String(t)),!1===(t=r.format.from(t))||isNaN(t)||N(e,J.toStepping(t),!1,!1))}function P(t,e){var o=i(t),s=void 0===G[0];e=void 0===e||!!e,o.forEach(I),r.animate&&!s&&n(q,r.cssClasses.tap,r.animationDuration),X.forEach(function(t){N(t,G[t],!0,!1)}),A(),X.forEach(function(t){_(\"update\",t),null!==o[t]&&e&&_(\"set\",t)})}function R(){var t=$.map(r.format.to);return 1===t.length?t[0]:t}function L(t,e){Q[t]=Q[t]||[],Q[t].push(e),\"update\"===t.split(\".\")[0]&&W.forEach(function(t,e){_(\"update\",e)})}var T,W,U,z,j,F=window.navigator.pointerEnabled?{start:\"pointerdown\",move:\"pointermove\",end:\"pointerup\"}:window.navigator.msPointerEnabled?{start:\"MSPointerDown\",move:\"MSPointerMove\",end:\"MSPointerUp\"}:{start:\"mousedown touchstart\",move:\"mousemove touchmove\",end:\"mouseup touchend\"},Y=window.CSS&&CSS.supports&&CSS.supports(\"touch-action\",\"none\"),H=Y&&function(){var t=!1;try{var e=Object.defineProperty({},\"passive\",{get:function(){t=!0}});window.addEventListener(\"test\",null,e)}catch(t){}return t}(),q=e,G=[],X=[],K=0,J=r.spectrum,$=[],Q={},Z=e.ownerDocument,tt=Z.documentElement,et=Z.body;if(q.noUiSlider)throw new Error(\"noUiSlider (\"+B+\"): Slider was already initialized.\");return function(t){o(t,r.cssClasses.target),0===r.dir?o(t,r.cssClasses.ltr):o(t,r.cssClasses.rtl);0===r.ort?o(t,r.cssClasses.horizontal):o(t,r.cssClasses.vertical);T=u(t,r.cssClasses.base)}(q),function(t,e){W=[],(U=[]).push(d(e,t[0]));for(var n=0;nn.stepAfter.startValue&&(r=n.stepAfter.startValue-i),o=i>n.thisStep.startValue?n.thisStep.step:!1!==n.stepBefore.step&&i-n.stepBefore.highestStep,100===t?r=null:0===t&&(o=null);var s=J.countStepDecimals();return null!==r&&!1!==r&&(r=Number(r.toFixed(s))),null!==o&&!1!==o&&(o=Number(o.toFixed(s))),[o,r]})},on:L,off:function(t){var e=t&&t.split(\".\")[0],n=e&&t.substring(e.length);Object.keys(Q).forEach(function(t){var i=t.split(\".\")[0],r=t.substring(i.length);e&&e!==i||n&&n!==r||delete Q[t]})},get:R,set:P,reset:function(t){P(r.start,t)},__moveHandles:function(t,e,n){b(t,e,G,n)},options:l,updateOptions:function(t,e){var n=R(),i=[\"margin\",\"limit\",\"padding\",\"range\",\"animate\",\"snap\",\"step\",\"format\"];i.forEach(function(e){void 0!==t[e]&&(l[e]=t[e])});var o=O(l);i.forEach(function(e){void 0!==t[e]&&(r[e]=o[e])}),J=o.spectrum,r.margin=o.margin,r.limit=o.limit,r.padding=o.padding,r.pips&&m(r.pips);G=[],P(t.start||n,e)},target:q,removePips:f,pips:m},function(t){t.fixed||W.forEach(function(t,e){g(F.start,t.children[0],S,{handleNumbers:[e]})});t.tap&&g(F.start,T,C,{});t.hover&&g(F.move,T,E,{hover:!0});t.drag&&U.forEach(function(e,n){if(!1!==e&&0!==n&&n!==U.length-1){var i=W[n-1],s=W[n],a=[e];o(e,r.cssClasses.draggable),t.fixed&&(a.push(i.children[0]),a.push(s.children[0])),a.forEach(function(t){g(F.start,t,S,{handles:[i,s],handleNumbers:[n-1,n]})})}})}(r.events),P(r.start),r.pips&&m(r.pips),r.tooltips&&function(){var t=W.map(h);L(\"update\",function(e,n,i){if(t[n]){var o=e[n];!0!==r.tooltips[n]&&(o=r.tooltips[n].to(i[n])),t[n].innerHTML=o}})}(),L(\"update\",function(t,e,n,i,o){X.forEach(function(t){var e=W[t],i=D(G,t,0,!0,!0,!0),s=D(G,t,100,!0,!0,!0),a=o[t],l=r.ariaFormat.to(n[t]);e.children[0].setAttribute(\"aria-valuemin\",i.toFixed(1)),e.children[0].setAttribute(\"aria-valuemax\",s.toFixed(1)),e.children[0].setAttribute(\"aria-valuenow\",a.toFixed(1)),e.children[0].setAttribute(\"aria-valuetext\",l)})}),z}var B=\"10.1.0\";m.prototype.getMargin=function(t){var e=this.xNumSteps[0];if(e&&t/e%1!=0)throw new Error(\"noUiSlider (\"+B+\"): 'limit', 'margin' and 'padding' must be divisible by step.\");return 2===this.xPct.length&&u(this.xVal,t)},m.prototype.toStepping=function(t){return t=d(this.xVal,this.xPct,t)},m.prototype.fromStepping=function(t){return function(t,e,n){if(n>=100)return t.slice(-1)[0];var i,r,o,s,a=c(n,e);return i=t[a-1],r=t[a],o=e[a-1],s=e[a],function(t,e){return e*(t[1]-t[0])/100+t[0]}([i,r],(n-o)*l(o,s))}(this.xVal,this.xPct,t)},m.prototype.getStep=function(t){return t=h(this.xPct,this.xSteps,this.snap,t)},m.prototype.getNearbySteps=function(t){var e=c(t,this.xPct);return{stepBefore:{startValue:this.xVal[e-2],step:this.xNumSteps[e-2],highestStep:this.xHighestCompleteStep[e-2]},thisStep:{startValue:this.xVal[e-1],step:this.xNumSteps[e-1],highestStep:this.xHighestCompleteStep[e-1]},stepAfter:{startValue:this.xVal[e-0],step:this.xNumSteps[e-0],highestStep:this.xHighestCompleteStep[e-0]}}},m.prototype.countStepDecimals=function(){var t=this.xNumSteps.map(r);return Math.max.apply(null,t)},m.prototype.convert=function(t){return this.getStep(this.toStepping(t))};var U={to:function(t){return void 0!==t&&t.toFixed(2)},from:Number};return{version:B,create:function(t,e){if(!t||!t.nodeName)throw new Error(\"noUiSlider (\"+B+\"): create requires a single element, got: \"+t);var n=O(e),i=W(t,n,e);return t.noUiSlider=i,i}}})},410:/*!\n", " * Pikaday\n", " *\n", " * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/dbushell/Pikaday\n", " */\n", " function(t,e,n){!function(i,r){\"use strict\";var o;if(\"object\"==typeof n){try{o=t(\"moment\")}catch(t){}e.exports=r(o)}else i.Pikaday=r(i.moment)}(this,function(t){\"use strict\";var e=\"function\"==typeof t,n=!!window.addEventListener,i=window.document,r=window.setTimeout,o=function(t,e,i,r){n?t.addEventListener(e,i,!!r):t.attachEvent(\"on\"+e,i)},s=function(t,e,i,r){n?t.removeEventListener(e,i,!!r):t.detachEvent(\"on\"+e,i)},a=function(t,e){return-1!==(\" \"+t.className+\" \").indexOf(\" \"+e+\" \")},l=function(t){return/Array/.test(Object.prototype.toString.call(t))},u=function(t){return/Date/.test(Object.prototype.toString.call(t))&&!isNaN(t.getTime())},c=function(t){var e=t.getDay();return 0===e||6===e},d=function(t,e){return[31,function(t){return t%4==0&&t%100!=0||t%400==0}(t)?29:28,31,30,31,30,31,31,30,31,30,31][e]},h=function(t){u(t)&&t.setHours(0,0,0,0)},p=function(t,e){return t.getTime()===e.getTime()},f=function(t,e,n){var i,r;for(i in e)(r=void 0!==t[i])&&\"object\"==typeof e[i]&&null!==e[i]&&void 0===e[i].nodeName?u(e[i])?n&&(t[i]=new Date(e[i].getTime())):l(e[i])?n&&(t[i]=e[i].slice(0)):t[i]=f({},e[i],n):!n&&r||(t[i]=e[i]);return t},m=function(t,e,n){var r;i.createEvent?((r=i.createEvent(\"HTMLEvents\")).initEvent(e,!0,!1),r=f(r,n),t.dispatchEvent(r)):i.createEventObject&&(r=i.createEventObject(),r=f(r,n),t.fireEvent(\"on\"+e,r))},v=function(t){return t.month<0&&(t.year-=Math.ceil(Math.abs(t.month)/12),t.month+=12),t.month>11&&(t.year+=Math.floor(Math.abs(t.month)/12),t.month-=12),t},g={field:null,bound:void 0,position:\"bottom left\",reposition:!0,format:\"YYYY-MM-DD\",toString:null,parse:null,defaultDate:null,setDefaultDate:!1,firstDay:0,formatStrict:!1,minDate:null,maxDate:null,yearRange:10,showWeekNumber:!1,pickWholeWeek:!1,minYear:0,maxYear:9999,minMonth:void 0,maxMonth:void 0,startRange:null,endRange:null,isRTL:!1,yearSuffix:\"\",showMonthAfterYear:!1,showDaysInNextAndPreviousMonths:!1,enableSelectionDaysInNextAndPreviousMonths:!1,numberOfMonths:1,mainCalendar:\"left\",container:void 0,blurFieldOnSelect:!0,i18n:{previousMonth:\"Previous Month\",nextMonth:\"Next Month\",months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],weekdays:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],weekdaysShort:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"]},theme:null,events:[],onSelect:null,onOpen:null,onClose:null,onDraw:null,keyboardInput:!0},y=function(t,e,n){for(e+=t.firstDay;e>=7;)e-=7;return n?t.i18n.weekdaysShort[e]:t.i18n.weekdays[e]},b=function(t){var e=[],n=\"false\";if(t.isEmpty){if(!t.showDaysInNextAndPreviousMonths)return'';e.push(\"is-outside-current-month\"),t.enableSelectionDaysInNextAndPreviousMonths||e.push(\"is-selection-disabled\")}return t.isDisabled&&e.push(\"is-disabled\"),t.isToday&&e.push(\"is-today\"),t.isSelected&&(e.push(\"is-selected\"),n=\"true\"),t.hasEvent&&e.push(\"has-event\"),t.isInRange&&e.push(\"is-inrange\"),t.isStartRange&&e.push(\"is-startrange\"),t.isEndRange&&e.push(\"is-endrange\"),'\"},_=function(t,e,n){var i=new Date(n,0,1),r=Math.ceil(((new Date(n,e,t)-i)/864e5+i.getDay()+1)/7);return''+r+\"\"},w=function(t,e,n,i){return''+(e?t.reverse():t).join(\"\")+\"\"},x=function(t,e,n,i,r,o){var s,a,u,c,d,h=t._o,p=n===h.minYear,f=n===h.maxYear,m='
',v=!0,g=!0;for(u=[],s=0;s<12;s++)u.push('\");for(c='
'+h.i18n.months[i]+'
\",l(h.yearRange)?(s=h.yearRange[0],a=h.yearRange[1]+1):(s=n-h.yearRange,a=1+n+h.yearRange),u=[];s=h.minYear&&u.push('\");return d='
'+n+h.yearSuffix+'
\",h.showMonthAfterYear?m+=d+c:m+=c+d,p&&(0===i||h.minMonth>=i)&&(v=!1),f&&(11===i||h.maxMonth<=i)&&(g=!1),0===e&&(m+='\"),e===t._o.numberOfMonths-1&&(m+='\"),m+=\"
\"},k=function(t,e,n){return''+function(t){var e,n=[];t.showWeekNumber&&n.push(\"\");for(e=0;e<7;e++)n.push('\");return\"\"+(t.isRTL?n.reverse():n).join(\"\")+\"\"}(t)+function(t){return\"\"+t.join(\"\")+\"\"}(e)+\"
'+y(t,e,!0)+\"
\"},S=function(s){var l=this,c=l.config(s);l._onMouseDown=function(t){if(l._v){var e=(t=t||window.event).target||t.srcElement;if(e)if(a(e,\"is-disabled\")||(!a(e,\"pika-button\")||a(e,\"is-empty\")||a(e.parentNode,\"is-disabled\")?a(e,\"pika-prev\")?l.prevMonth():a(e,\"pika-next\")&&l.nextMonth():(l.setDate(new Date(e.getAttribute(\"data-pika-year\"),e.getAttribute(\"data-pika-month\"),e.getAttribute(\"data-pika-day\"))),c.bound&&r(function(){l.hide(),c.blurFieldOnSelect&&c.field&&c.field.blur()},100))),a(e,\"pika-select\"))l._c=!0;else{if(!t.preventDefault)return t.returnValue=!1,!1;t.preventDefault()}}},l._onChange=function(t){var e=(t=t||window.event).target||t.srcElement;e&&(a(e,\"pika-select-month\")?l.gotoMonth(e.value):a(e,\"pika-select-year\")&&l.gotoYear(e.value))},l._onKeyChange=function(t){if(t=t||window.event,l.isVisible())switch(t.keyCode){case 13:case 27:c.field&&c.field.blur();break;case 37:t.preventDefault(),l.adjustDate(\"subtract\",1);break;case 38:l.adjustDate(\"subtract\",7);break;case 39:l.adjustDate(\"add\",1);break;case 40:l.adjustDate(\"add\",7)}},l._onInputChange=function(n){var i;n.firedBy!==l&&(i=c.parse?c.parse(c.field.value,c.format):e?(i=t(c.field.value,c.format,c.formatStrict))&&i.isValid()?i.toDate():null:new Date(Date.parse(c.field.value)),u(i)&&l.setDate(i),l._v||l.show())},l._onInputFocus=function(){l.show()},l._onInputClick=function(){l.show()},l._onInputBlur=function(){var t=i.activeElement;do{if(a(t,\"pika-single\"))return}while(t=t.parentNode);l._c||(l._b=r(function(){l.hide()},50)),l._c=!1},l._onClick=function(t){var e=(t=t||window.event).target||t.srcElement,i=e;if(e){!n&&a(e,\"pika-select\")&&(e.onchange||(e.setAttribute(\"onchange\",\"return;\"),o(e,\"change\",l._onChange)));do{if(a(i,\"pika-single\")||i===c.trigger)return}while(i=i.parentNode);l._v&&e!==c.trigger&&i!==c.trigger&&l.hide()}},l.el=i.createElement(\"div\"),l.el.className=\"pika-single\"+(c.isRTL?\" is-rtl\":\"\")+(c.theme?\" \"+c.theme:\"\"),o(l.el,\"mousedown\",l._onMouseDown,!0),o(l.el,\"touchend\",l._onMouseDown,!0),o(l.el,\"change\",l._onChange),c.keyboardInput&&o(i,\"keydown\",l._onKeyChange),c.field&&(c.container?c.container.appendChild(l.el):c.bound?i.body.appendChild(l.el):c.field.parentNode.insertBefore(l.el,c.field.nextSibling),o(c.field,\"change\",l._onInputChange),c.defaultDate||(e&&c.field.value?c.defaultDate=t(c.field.value,c.format).toDate():c.defaultDate=new Date(Date.parse(c.field.value)),c.setDefaultDate=!0));var d=c.defaultDate;u(d)?c.setDefaultDate?l.setDate(d,!0):l.gotoDate(d):l.gotoDate(new Date),c.bound?(this.hide(),l.el.className+=\" is-bound\",o(c.trigger,\"click\",l._onInputClick),o(c.trigger,\"focus\",l._onInputFocus),o(c.trigger,\"blur\",l._onInputBlur)):this.show()};return S.prototype={config:function(t){this._o||(this._o=f({},g,!0));var e=f(this._o,t,!0);e.isRTL=!!e.isRTL,e.field=e.field&&e.field.nodeName?e.field:null,e.theme=\"string\"==typeof e.theme&&e.theme?e.theme:null,e.bound=!!(void 0!==e.bound?e.field&&e.bound:e.field),e.trigger=e.trigger&&e.trigger.nodeName?e.trigger:e.field,e.disableWeekends=!!e.disableWeekends,e.disableDayFn=\"function\"==typeof e.disableDayFn?e.disableDayFn:null;var n=parseInt(e.numberOfMonths,10)||1;if(e.numberOfMonths=n>4?4:n,u(e.minDate)||(e.minDate=!1),u(e.maxDate)||(e.maxDate=!1),e.minDate&&e.maxDate&&e.maxDate100&&(e.yearRange=100);return e},toString:function(n){return n=n||this._o.format,u(this._d)?this._o.toString?this._o.toString(this._d,n):e?t(this._d).format(n):this._d.toDateString():\"\"},getMoment:function(){return e?t(this._d):null},setMoment:function(n,i){e&&t.isMoment(n)&&this.setDate(n.toDate(),i)},getDate:function(){return u(this._d)?new Date(this._d.getTime()):null},setDate:function(t,e){if(!t)return this._d=null,this._o.field&&(this._o.field.value=\"\",m(this._o.field,\"change\",{firedBy:this})),this.draw();if(\"string\"==typeof t&&(t=new Date(Date.parse(t))),u(t)){var n=this._o.minDate,i=this._o.maxDate;u(n)&&ti&&(t=i),this._d=new Date(t.getTime()),h(this._d),this.gotoDate(this._d),this._o.field&&(this._o.field.value=this.toString(),m(this._o.field,\"change\",{firedBy:this})),e||\"function\"!=typeof this._o.onSelect||this._o.onSelect.call(this,this.getDate())}},gotoDate:function(t){var e=!0;if(u(t)){if(this.calendars){var n=new Date(this.calendars[0].year,this.calendars[0].month,1),i=new Date(this.calendars[this.calendars.length-1].year,this.calendars[this.calendars.length-1].month,1),r=t.getTime();i.setMonth(i.getMonth()+1),i.setDate(i.getDate()-1),e=r=o&&(this._y=o,!isNaN(a)&&this._m>a&&(this._m=a)),e=\"pika-title-\"+Math.random().toString(36).replace(/[^a-z]+/g,\"\").substr(0,2);for(var u=0;u'+x(this,u,this.calendars[u].year,this.calendars[u].month,this.calendars[0].year,e)+this.render(this.calendars[u].year,this.calendars[u].month,e)+\"\";this.el.innerHTML=l,n.bound&&\"hidden\"!==n.field.type&&r(function(){n.trigger.focus()},1),\"function\"==typeof this._o.onDraw&&this._o.onDraw(this),n.bound&&n.field.setAttribute(\"aria-label\",\"Use the arrow keys to pick a date\")}},adjustPosition:function(){var t,e,n,r,o,s,a,l,u,c;if(!this._o.container){if(this.el.style.position=\"absolute\",t=this._o.trigger,e=t,n=this.el.offsetWidth,r=this.el.offsetHeight,o=window.innerWidth||i.documentElement.clientWidth,s=window.innerHeight||i.documentElement.clientHeight,a=window.pageYOffset||i.body.scrollTop||i.documentElement.scrollTop,\"function\"==typeof t.getBoundingClientRect)c=t.getBoundingClientRect(),l=c.left+window.pageXOffset,u=c.bottom+window.pageYOffset;else for(l=e.offsetLeft,u=e.offsetTop+e.offsetHeight;e=e.offsetParent;)l+=e.offsetLeft,u+=e.offsetTop;(this._o.reposition&&l+n>o||this._o.position.indexOf(\"right\")>-1&&l-n+t.offsetWidth>0)&&(l=l-n+t.offsetWidth),(this._o.reposition&&u+r>s+a||this._o.position.indexOf(\"top\")>-1&&u-r-t.offsetHeight>0)&&(u=u-r-t.offsetHeight),this.el.style.left=l+\"px\",this.el.style.top=u+\"px\"}},render:function(t,e,n){var i=this._o,r=new Date,o=d(t,e),s=new Date(t,e,1).getDay(),a=[],l=[];h(r),i.firstDay>0&&(s-=i.firstDay)<0&&(s+=7);for(var f=0===e?11:e-1,m=11===e?0:e+1,v=0===e?t-1:t,g=11===e?t+1:t,y=d(v,f),x=o+s,S=x;S>7;)S-=7;x+=7-S;for(var C=!1,E=0,D=0;E=o+s,P=E-s+1,R=e,L=t,T=i.startRange&&p(i.startRange,M),O=i.endRange&&p(i.endRange,M),W=i.startRange&&i.endRange&&i.startRangei.maxDate||i.disableWeekends&&c(M)||i.disableDayFn&&i.disableDayFn(M);I&&(E/g,\">\")},t}(d.Model);n.CellFormatter=p;var f=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o.__extends(t,e),t.initClass=function(){this.prototype.type=\"StringFormatter\",this.define({font_style:[s.FontStyle,\"normal\"],text_align:[s.TextAlign,\"left\"],text_color:[s.Color]})},t.prototype.doFormat=function(e,t,n,o,r){var i=this.font_style,l=this.text_align,s=this.text_color,c=a.span({},null==n?\"\":\"\"+n);switch(i){case\"bold\":c.style.fontWeight=\"bold\";break;case\"italic\":c.style.fontStyle=\"italic\"}return null!=l&&(c.style.textAlign=l),null!=s&&(c.style.color=s),c=c.outerHTML},t}(p);n.StringFormatter=f,f.initClass();var h=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o.__extends(t,e),t.initClass=function(){this.prototype.type=\"NumberFormatter\",this.define({format:[s.String,\"0,0\"],language:[s.String,\"en\"],rounding:[s.String,\"round\"]})},t.prototype.doFormat=function(t,n,o,i,l){var s=this,a=this.format,c=this.language,u=function(){switch(s.rounding){case\"round\":case\"nearest\":return Math.round;case\"floor\":case\"rounddown\":return Math.floor;case\"ceil\":case\"roundup\":return Math.ceil}}();return o=r.format(o,a,c,u),e.prototype.doFormat.call(this,t,n,o,i,l)},t}(f);n.NumberFormatter=h,h.initClass();var g=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o.__extends(t,e),t.initClass=function(){this.prototype.type=\"BooleanFormatter\",this.define({icon:[s.String,\"check\"]})},t.prototype.doFormat=function(e,t,n,o,r){return n?a.i({class:this.icon}).outerHTML:\"\"},t}(p);n.BooleanFormatter=g,g.initClass();var m=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o.__extends(t,e),t.initClass=function(){this.prototype.type=\"DateFormatter\",this.define({format:[s.String,\"ISO-8601\"]})},t.prototype.getFormat=function(){var e=this,t=function(){switch(e.format){case\"ATOM\":case\"W3C\":case\"RFC-3339\":case\"ISO-8601\":return\"%Y-%m-%d\";case\"COOKIE\":return\"%a, %d %b %Y\";case\"RFC-850\":return\"%A, %d-%b-%y\";case\"RFC-1123\":case\"RFC-2822\":return\"%a, %e %b %Y\";case\"RSS\":case\"RFC-822\":case\"RFC-1036\":return\"%a, %e %b %y\";case\"TIMESTAMP\":return null;default:return\"__CUSTOM__\"}}();return\"__CUSTOM__\"===t?this.format:t},t.prototype.doFormat=function(t,n,o,r,i){o=u.isString(o)?parseInt(o,10):o;var s=l(o,this.getFormat());return e.prototype.doFormat.call(this,t,n,s,r,i)},t}(p);n.DateFormatter=m,m.initClass();var v=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o.__extends(t,e),t.initClass=function(){this.prototype.type=\"HTMLTemplateFormatter\",this.define({template:[s.String,\"<%= value %>\"]})},t.prototype.doFormat=function(e,t,n,o,r){var l=this.template;if(null===n)return\"\";r=c.extend({},r,{value:n});var s=i(l);return s(r)},t}(p);n.HTMLTemplateFormatter=v,v.initClass()},413:function(e,t,n){var o=e(369),r=e(425),i=e(423),l=e(422),s=e(9),a=e(15),c=e(38),u=e(22),d=e(14),p=e(417),f=e(418);n.DTINDEX_NAME=\"__bkdt_internal_index__\";var h=function(){function e(e,t){if(this.source=e,this.view=t,n.DTINDEX_NAME in this.source.data)throw new Error(\"special name \"+n.DTINDEX_NAME+\" cannot be used as a data table column\");this.index=this.view.indices}return e.prototype.getLength=function(){return this.index.length},e.prototype.getItem=function(e){for(var t={},o=0,r=Object.keys(this.source.data);od?c:-c;if(0!==p)return p}return 0})},e.prototype._update_source_inplace=function(){this.source.properties.data.change.emit(this,this.source.attributes.data)},e}();n.DataProvider=h;var g=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o.__extends(t,e),t.prototype.initialize=function(t){e.prototype.initialize.call(this,t),this.in_selection_update=!1},t.prototype.connect_signals=function(){var t=this;return e.prototype.connect_signals.call(this),this.connect(this.model.change,function(){return t.render()}),this.connect(this.model.source.properties.data.change,function(){return t.updateGrid()}),this.connect(this.model.source.streaming,function(){return t.updateGrid()}),this.connect(this.model.source.patching,function(){return t.updateGrid()}),this.connect(this.model.source.change,function(){return t.updateSelection()})},t.prototype.updateGrid=function(){this.model.view.compute_indices(),this.data.constructor(this.model.source,this.model.view),this.grid.invalidate(),this.grid.render(),this.model.source.data=this.model.source.data,this.model.source.change.emit(void 0)},t.prototype.updateSelection=function(){var e=this;if(!this.in_selection_update){var t=this.model.source.selected,n=t[\"1d\"].indices,o=n.map(function(t){return e.data.index.indexOf(t)});this.in_selection_update=!0,this.grid.setSelectedRows(o),this.in_selection_update=!1;var r=this.grid.getViewport(),i=this.model.get_scroll_index(r,o);return null!=i?this.grid.scrollRowToTop(i):void 0}},t.prototype.newIndexColumn=function(){return{id:c.uniqueId(),name:\"#\",field:n.DTINDEX_NAME,width:40,behavior:\"select\",cannotTriggerInsert:!0,resizable:!1,selectable:!1,sortable:!0,cssClass:\"bk-cell-index\"}},t.prototype.css_classes=function(){return e.prototype.css_classes.call(this).concat(\"bk-data-table\")},t.prototype.render=function(){var e,t=this,n=this.model.columns.map(function(e){return e.toColumn()});\"checkbox\"===this.model.selectable&&(e=new l.CheckboxSelectColumn({cssClass:\"bk-cell-select\"}),n.unshift(e.getColumnDefinition())),this.model.row_headers&&n.unshift(this.newIndexColumn());var o=this.model.reorderable;o&&null==function(e,t){return void 0!==e&&null!==e?t(e):void 0}(\"undefined\"!=typeof $&&null!==$?$.fn:void 0,function(e){return e.sortable})&&(null==this._warned_not_reorderable&&(d.logger.warn(\"jquery-ui is required to enable DataTable.reorderable\"),this._warned_not_reorderable=!0),o=!1);var a={enableCellNavigation:!1!==this.model.selectable,enableColumnReorder:o,forceFitColumns:this.model.fit_columns,autoHeight:\"auto\"===this.model.height,multiColumnSort:this.model.sortable,editable:this.model.editable,autoEdit:!1};return null!=this.model.width?this.el.style.width=this.model.width+\"px\":this.el.style.width=this.model.default_width+\"px\",null!=this.model.height&&\"auto\"!==this.model.height&&(this.el.style.height=this.model.height+\"px\"),this.data=new h(this.model.source,this.model.view),this.grid=new r.Grid(this.el,this.data,n,a),this.grid.onSort.subscribe(function(e,o){return n=o.sortCols,t.data.sort(n),t.grid.invalidate(),t.updateSelection(),t.grid.render()}),!1!==this.model.selectable&&(this.grid.setSelectionModel(new i.RowSelectionModel({selectActiveRow:null==e})),null!=e&&this.grid.registerPlugin(e),this.grid.onSelectedRowsChanged.subscribe(function(e,n){if(!t.in_selection_update){var o=s.create_hit_test_result();return o[\"1d\"].indices=n.rows.map(function(e){return t.data.index[e]}),t.model.source.selected=o}}),this.updateSelection()),this},t}(f.WidgetView);n.DataTableView=g;var m=function(e){function t(t,n){return e.call(this,t,n)||this}return o.__extends(t,e),t.initClass=function(){this.prototype.type=\"DataTable\",this.prototype.default_view=g,this.define({columns:[a.Array,[]],fit_columns:[a.Bool,!0],sortable:[a.Bool,!0],reorderable:[a.Bool,!0],editable:[a.Bool,!1],selectable:[a.Bool,!0],row_headers:[a.Bool,!0],scroll_to_selection:[a.Bool,!0]}),this.override({height:400}),this.internal({default_width:[a.Number,600]})},t.prototype.get_scroll_index=function(e,t){return this.scroll_to_selection&&0!==t.length?u.any(t,function(t){return e.top<=t&&t<=e.bottom})?null:Math.max(0,Math.min.apply(Math,t||[])-1):null},t}(p.TableWidget);n.DataTable=m,m.initClass()},414:function(e,t,n){var o=e(369);o.__exportStar(e(411),n),o.__exportStar(e(412),n);var r=e(413);n.DataTable=r.DataTable;var i=e(416);n.TableColumn=i.TableColumn;var l=e(417);n.TableWidget=l.TableWidget},415:function(e,t,n){var o=e(414);n.Tables=o;var r=e(0);r.register_models(o)},416:function(e,t,n){var o=e(369),r=e(412),i=e(411),l=e(15),s=e(38),a=e(51),c=function(e){function t(t,n){return e.call(this,t,n)||this}return o.__extends(t,e),t.initClass=function(){this.prototype.type=\"TableColumn\",this.prototype.default_view=null,this.define({field:[l.String],title:[l.String],width:[l.Number,300],formatter:[l.Instance,function(){return new r.StringFormatter}],editor:[l.Instance,function(){return new i.StringEditor}],sortable:[l.Bool,!0],default_sort:[l.String,\"ascending\"]})},t.prototype.toColumn=function(){return{id:s.uniqueId(),field:this.field,name:this.title,width:this.width,formatter:null!=this.formatter?this.formatter.doFormat.bind(this.formatter):void 0,model:this.editor,editor:this.editor.default_view,sortable:this.sortable,defaultSortAsc:\"ascending\"===this.default_sort}},t}(a.Model);n.TableColumn=c,c.initClass()},417:function(e,t,n){var o=e(369),r=e(418),i=e(173),l=e(15),s=function(e){function t(t,n){return e.call(this,t,n)||this}return o.__extends(t,e),t.initClass=function(){this.prototype.type=\"TableWidget\",this.define({source:[l.Instance],view:[l.Instance,function(){return new i.CDSView}]})},t.prototype.initialize=function(){e.prototype.initialize.call(this),null==this.view.source&&(this.view.source=this.source,this.view.compute_indices())},t}(r.Widget);n.TableWidget=s,s.initClass()},418:function(e,t,n){var o=e(369),r=e(140),i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o.__extends(t,e),t.prototype.css_classes=function(){return e.prototype.css_classes.call(this).concat(\"bk-widget\")},t.prototype.render=function(){this._render_classes(),null!=this.model.height&&(this.el.style.height=this.model.height+\"px\"),null!=this.model.width&&(this.el.style.width=this.model.width+\"px\")},t.prototype.get_width=function(){throw new Error(\"unused\")},t.prototype.get_height=function(){throw new Error(\"unused\")},t}(r.LayoutDOMView);n.WidgetView=i;var l=function(e){function t(t,n){return e.call(this,t,n)||this}return o.__extends(t,e),t.initClass=function(){this.prototype.type=\"Widget\"},t}(r.LayoutDOM);n.Widget=l,l.initClass()},419:/*!\n", " * jQuery JavaScript Library v3.2.1\n", " * https://jquery.com/\n", " *\n", " * Includes Sizzle.js\n", " * https://sizzlejs.com/\n", " *\n", " * Copyright JS Foundation and other contributors\n", " * Released under the MIT license\n", " * https://jquery.org/license\n", " *\n", " * Date: 2017-03-20T18:59Z\n", " */\n", " function(e,t,n){!function(e,n){\"use strict\";\"object\"==typeof t&&\"object\"==typeof t.exports?t.exports=e.document?n(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return n(e)}:n(e)}(\"undefined\"!=typeof window?window:this,function(e,t){\"use strict\";function n(e,t){var n=(t=t||G).createElement(\"script\");n.text=e,t.head.appendChild(n).parentNode.removeChild(n)}function o(e){var t=!!e&&\"length\"in e&&e.length,n=se.type(e);return\"function\"!==n&&!se.isWindow(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&t>0&&t-1 in e)}function r(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}function i(e,t,n){return se.isFunction(t)?se.grep(e,function(e,o){return!!t.call(e,o,e)!==n}):t.nodeType?se.grep(e,function(e){return e===t!==n}):\"string\"!=typeof t?se.grep(e,function(e){return ee.call(t,e)>-1!==n}):ve.test(t)?se.filter(t,e,n):(t=se.filter(t,e),se.grep(e,function(e){return ee.call(t,e)>-1!==n&&1===e.nodeType}))}function l(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function s(e){return e}function a(e){throw e}function c(e,t,n,o){var r;try{e&&se.isFunction(r=e.promise)?r.call(e).done(t).fail(n):e&&se.isFunction(r=e.then)?r.call(e,t,n):t.apply(void 0,[e].slice(o))}catch(e){n.apply(void 0,[e])}}function u(){G.removeEventListener(\"DOMContentLoaded\",u),e.removeEventListener(\"load\",u),se.ready()}function d(){this.expando=se.expando+d.uid++}function p(e,t,n){var o;if(void 0===n&&1===e.nodeType)if(o=\"data-\"+t.replace(Ae,\"-$&\").toLowerCase(),\"string\"==typeof(n=e.getAttribute(o))){try{n=function(e){if(\"true\"===e)return!0;if(\"false\"===e)return!1;if(\"null\"===e)return null;if(e===+e+\"\")return+e;if(Ne.test(e))return JSON.parse(e);return e}(n)}catch(e){}De.set(e,t,n)}else n=void 0;return n}function f(e,t,n,o){var r,i=1,l=20,s=o?function(){return o.cur()}:function(){return se.css(e,t,\"\")},a=s(),c=n&&n[3]||(se.cssNumber[t]?\"\":\"px\"),u=(se.cssNumber[t]||\"px\"!==c&&+a)&&He.exec(se.css(e,t));if(u&&u[3]!==c){c=c||u[3],n=n||[],u=+a||1;do{u/=i=i||\".5\",se.style(e,t,u+c)}while(i!==(i=s()/a)&&1!==i&&--l)}return n&&(u=+u||+a||0,r=n[1]?u+(n[1]+1)*n[2]:+n[2],o&&(o.unit=c,o.start=u,o.end=r)),r}function h(e){var t,n=e.ownerDocument,o=e.nodeName,r=Ie[o];return r||(t=n.body.appendChild(n.createElement(o)),r=se.css(t,\"display\"),t.parentNode.removeChild(t),\"none\"===r&&(r=\"block\"),Ie[o]=r,r)}function g(e,t){for(var n,o,r=[],i=0,l=e.length;i-1)r&&r.push(i);else if(c=se.contains(i.ownerDocument,i),l=m(d.appendChild(i),\"script\"),c&&v(l),n)for(u=0;i=l[u++];)je.test(i.type||\"\")&&n.push(i);return d}function y(){return!0}function C(){return!1}function b(){try{return G.activeElement}catch(e){}}function x(e,t,n,o,r,i){var l,s;if(\"object\"==typeof t){\"string\"!=typeof n&&(o=o||n,n=void 0);for(s in t)x(e,s,n,o,t[s],i);return e}if(null==o&&null==r?(r=n,o=n=void 0):null==r&&(\"string\"==typeof n?(r=o,o=void 0):(r=o,o=n,n=void 0)),!1===r)r=C;else if(!r)return e;return 1===i&&(l=r,(r=function(e){return se().off(e),l.apply(this,arguments)}).guid=l.guid||(l.guid=se.guid++)),e.each(function(){se.event.add(this,t,r,o,n)})}function R(e,t){return r(e,\"table\")&&r(11!==t.nodeType?t:t.firstChild,\"tr\")?se(\">tbody\",e)[0]||e:e}function S(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function E(e){var t=Ye.exec(e.type);return t?e.type=t[1]:e.removeAttribute(\"type\"),e}function k(e,t){var n,o,r,i,l,s,a,c;if(1===t.nodeType){if(Pe.hasData(e)&&(i=Pe.access(e),l=Pe.set(t,i),c=i.events)){delete l.handle,l.events={};for(r in c)for(n=0,o=c[r].length;n1&&\"string\"==typeof h&&!le.checkClone&&Ge.test(h))return e.each(function(n){var i=e.eq(n);g&&(t[0]=h.call(this,n,i.html())),P(i,t,o,r)});if(p&&(i=w(t,e[0].ownerDocument,!1,e,r),l=i.firstChild,1===i.childNodes.length&&(i=l),l||r)){for(s=se.map(m(i,\"script\"),S),a=s.length;d=0&&nb.cacheLength&&delete e[t.shift()],e[n+\" \"]=o}var t=[];return e}function o(e){return e[M]=!0,e}function r(e){var t=A.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function i(e,t){for(var n=e.split(\"|\"),o=n.length;o--;)b.attrHandle[n[o]]=t}function l(e,t){var n=t&&e,o=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(o)return o;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return\"input\"===n&&t.type===e}}function a(e){return function(t){var n=t.nodeName.toLowerCase();return(\"input\"===n||\"button\"===n)&&t.type===e}}function c(e){return function(t){return\"form\"in t?t.parentNode&&!1===t.disabled?\"label\"in t?\"label\"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&xe(t)===e:t.disabled===e:\"label\"in t&&t.disabled===e}}function u(e){return o(function(t){return t=+t,o(function(n,o){for(var r,i=e([],n.length,t),l=i.length;l--;)n[r=i[l]]&&(n[r]=!(o[r]=n[r]))})})}function d(e){return e&&void 0!==e.getElementsByTagName&&e}function p(){}function f(e){for(var t=0,n=e.length,o=\"\";t1?function(t,n,o){for(var r=e.length;r--;)if(!e[r](t,n,o))return!1;return!0}:e[0]}function m(e,t,n,o,r){for(var i,l=[],s=0,a=e.length,c=null!=t;s-1&&(o[u]=!(s[u]=p))}}else y=m(y===s?y.splice(g,y.length):y),l?l(null,s,y,c):Y.apply(s,y)})}function w(e){for(var t,n,o,r=e.length,i=b.relative[e[0].type],l=i||b.relative[\" \"],s=i?1:0,a=h(function(e){return e===t},l,!0),c=h(function(e){return J(t,e)>-1},l,!0),u=[function(e,n,o){var r=!i&&(o||n!==T)||((t=n).nodeType?a(e,n,o):c(e,n,o));return t=null,r}];s1&&g(u),s>1&&f(e.slice(0,s-1).concat({value:\" \"===e[s-2].type?\"*\":\"\"})).replace(ie,\"$1\"),n,s+~]|\"+ee+\")\"+ee+\"*\"),ae=new RegExp(\"=\"+ee+\"*([^\\\\]'\\\"]*?)\"+ee+\"*\\\\]\",\"g\"),ce=new RegExp(oe),ue=new RegExp(\"^\"+te+\"$\"),de={ID:new RegExp(\"^#(\"+te+\")\"),CLASS:new RegExp(\"^\\\\.(\"+te+\")\"),TAG:new RegExp(\"^(\"+te+\"|[*])\"),ATTR:new RegExp(\"^\"+ne),PSEUDO:new RegExp(\"^\"+oe),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+ee+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+ee+\"*(?:([+-]|)\"+ee+\"*(\\\\d+)|))\"+ee+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+Z+\")$\",\"i\"),needsContext:new RegExp(\"^\"+ee+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+ee+\"*((?:-\\\\d)?\\\\d*)\"+ee+\"*\\\\)|)(?=[^-]|$)\",\"i\")},pe=/^(?:input|select|textarea|button)$/i,fe=/^h\\d$/i,he=/^[^{]+\\{\\s*\\[native \\w/,ge=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,me=/[+~]/,ve=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+ee+\"?|(\"+ee+\")|.)\",\"ig\"),we=function(e,t,n){var o=\"0x\"+t-65536;return o!=o||n?t:o<0?String.fromCharCode(o+65536):String.fromCharCode(o>>10|55296,1023&o|56320)},ye=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,Ce=function(e,t){return t?\"\\0\"===e?\"�\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},be=function(){N()},xe=h(function(e){return!0===e.disabled&&(\"form\"in e||\"label\"in e)},{dir:\"parentNode\",next:\"legend\"});try{Y.apply(U=Q.call(W.childNodes),W.childNodes),U[W.childNodes.length].nodeType}catch(e){Y={apply:U.length?function(e,t){G.apply(e,Q.call(t))}:function(e,t){for(var n=e.length,o=0;e[n++]=t[o++];);e.length=n-1}}}C=t.support={},R=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&\"HTML\"!==t.nodeName},N=t.setDocument=function(e){var t,n,o=e?e.ownerDocument||e:W;return o!==A&&9===o.nodeType&&o.documentElement?(A=o,$=A.documentElement,H=!R(A),W!==A&&(n=A.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener(\"unload\",be,!1):n.attachEvent&&n.attachEvent(\"onunload\",be)),C.attributes=r(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),C.getElementsByTagName=r(function(e){return e.appendChild(A.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),C.getElementsByClassName=he.test(A.getElementsByClassName),C.getById=r(function(e){return $.appendChild(e).id=M,!A.getElementsByName||!A.getElementsByName(M).length}),C.getById?(b.filter.ID=function(e){var t=e.replace(ve,we);return function(e){return e.getAttribute(\"id\")===t}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&H){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var t=e.replace(ve,we);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode(\"id\");return n&&n.value===t}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&H){var n,o,r,i=t.getElementById(e);if(i){if((n=i.getAttributeNode(\"id\"))&&n.value===e)return[i];for(r=t.getElementsByName(e),o=0;i=r[o++];)if((n=i.getAttributeNode(\"id\"))&&n.value===e)return[i]}return[]}}),b.find.TAG=C.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):C.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,o=[],r=0,i=t.getElementsByTagName(e);if(\"*\"===e){for(;n=i[r++];)1===n.nodeType&&o.push(n);return o}return i},b.find.CLASS=C.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&H)return t.getElementsByClassName(e)},F=[],L=[],(C.qsa=he.test(A.querySelectorAll))&&(r(function(e){$.appendChild(e).innerHTML=\"\",e.querySelectorAll(\"[msallowcapture^='']\").length&&L.push(\"[*^$]=\"+ee+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||L.push(\"\\\\[\"+ee+\"*(?:value|\"+Z+\")\"),e.querySelectorAll(\"[id~=\"+M+\"-]\").length||L.push(\"~=\"),e.querySelectorAll(\":checked\").length||L.push(\":checked\"),e.querySelectorAll(\"a#\"+M+\"+*\").length||L.push(\".#.+[+~]\")}),r(function(e){e.innerHTML=\"\";var t=A.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&L.push(\"name\"+ee+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&L.push(\":enabled\",\":disabled\"),$.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&L.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),L.push(\",.*:\")})),(C.matchesSelector=he.test(_=$.matches||$.webkitMatchesSelector||$.mozMatchesSelector||$.oMatchesSelector||$.msMatchesSelector))&&r(function(e){C.disconnectedMatch=_.call(e,\"*\"),_.call(e,\"[s!='']:x\"),F.push(\"!=\",oe)}),L=L.length&&new RegExp(L.join(\"|\")),F=F.length&&new RegExp(F.join(\"|\")),t=he.test($.compareDocumentPosition),I=t||he.test($.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,o=t&&t.parentNode;return e===o||!(!o||1!==o.nodeType||!(n.contains?n.contains(o):e.compareDocumentPosition&&16&e.compareDocumentPosition(o)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},z=t?function(e,t){if(e===t)return D=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!C.sortDetached&&t.compareDocumentPosition(e)===n?e===A||e.ownerDocument===W&&I(W,e)?-1:t===A||t.ownerDocument===W&&I(W,t)?1:P?J(P,e)-J(P,t):0:4&n?-1:1)}:function(e,t){if(e===t)return D=!0,0;var n,o=0,r=e.parentNode,i=t.parentNode,s=[e],a=[t];if(!r||!i)return e===A?-1:t===A?1:r?-1:i?1:P?J(P,e)-J(P,t):0;if(r===i)return l(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)a.unshift(n);for(;s[o]===a[o];)o++;return o?l(s[o],a[o]):s[o]===W?-1:a[o]===W?1:0},A):A},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==A&&N(e),n=n.replace(ae,\"='$1']\"),C.matchesSelector&&H&&!O[n+\" \"]&&(!F||!F.test(n))&&(!L||!L.test(n)))try{var o=_.call(e,n);if(o||C.disconnectedMatch||e.document&&11!==e.document.nodeType)return o}catch(e){}return t(n,A,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==A&&N(e),I(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==A&&N(e);var n=b.attrHandle[t.toLowerCase()],o=n&&X.call(b.attrHandle,t.toLowerCase())?n(e,t,!H):void 0;return void 0!==o?o:C.attributes||!H?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},t.escape=function(e){return(e+\"\").replace(ye,Ce)},t.error=function(e){throw new Error(\"Syntax error, unrecognized expression: \"+e)},t.uniqueSort=function(e){var t,n=[],o=0,r=0;if(D=!C.detectDuplicates,P=!C.sortStable&&e.slice(0),e.sort(z),D){for(;t=e[r++];)t===e[r]&&(o=n.push(r));for(;o--;)e.splice(n[o],1)}return P=null,e},x=t.getText=function(e){var t,n=\"\",o=0,r=e.nodeType;if(r){if(1===r||9===r||11===r){if(\"string\"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=x(e)}else if(3===r||4===r)return e.nodeValue}else for(;t=e[o++];)n+=x(t);return n},(b=t.selectors={cacheLength:50,createPseudo:o,match:de,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ve,we),e[3]=(e[3]||e[4]||e[5]||\"\").replace(ve,we),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return de.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&ce.test(n)&&(t=S(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ve,we).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=B[e+\" \"];return t||(t=new RegExp(\"(^|\"+ee+\")\"+e+\"(\"+ee+\"|$)\"))&&B(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(e,n,o){return function(r){var i=t.attr(r,e);return null==i?\"!=\"===n:!n||(i+=\"\",\"=\"===n?i===o:\"!=\"===n?i!==o:\"^=\"===n?o&&0===i.indexOf(o):\"*=\"===n?o&&i.indexOf(o)>-1:\"$=\"===n?o&&i.slice(-o.length)===o:\"~=\"===n?(\" \"+i.replace(re,\" \")+\" \").indexOf(o)>-1:\"|=\"===n&&(i===o||i.slice(0,o.length+1)===o+\"-\"))}},CHILD:function(e,t,n,o,r){var i=\"nth\"!==e.slice(0,3),l=\"last\"!==e.slice(-4),s=\"of-type\"===t;return 1===o&&0===r?function(e){return!!e.parentNode}:function(t,n,a){var c,u,d,p,f,h,g=i!==l?\"nextSibling\":\"previousSibling\",m=t.parentNode,v=s&&t.nodeName.toLowerCase(),w=!a&&!s,y=!1;if(m){if(i){for(;g;){for(p=t;p=p[g];)if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g=\"only\"===e&&!h&&\"nextSibling\"}return!0}if(h=[l?m.firstChild:m.lastChild],l&&w){for(d=(p=m)[M]||(p[M]={}),u=d[p.uniqueID]||(d[p.uniqueID]={}),c=u[e]||[],f=c[0]===j&&c[1],y=f&&c[2],p=f&&m.childNodes[f];p=++f&&p&&p[g]||(y=f=0)||h.pop();)if(1===p.nodeType&&++y&&p===t){u[e]=[j,f,y];break}}else if(w&&(d=(p=t)[M]||(p[M]={}),u=d[p.uniqueID]||(d[p.uniqueID]={}),c=u[e]||[],f=c[0]===j&&c[1],y=f),!1===y)for(;(p=++f&&p&&p[g]||(y=f=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==v:1!==p.nodeType)||!++y||(w&&(d=p[M]||(p[M]={}),(u=d[p.uniqueID]||(d[p.uniqueID]={}))[e]=[j,y]),p!==t)););return(y-=r)===o||y%o==0&&y/o>=0}}},PSEUDO:function(e,n){var r,i=b.pseudos[e]||b.setFilters[e.toLowerCase()]||t.error(\"unsupported pseudo: \"+e);return i[M]?i(n):i.length>1?(r=[e,e,\"\",n],b.setFilters.hasOwnProperty(e.toLowerCase())?o(function(e,t){for(var o,r=i(e,n),l=r.length;l--;)o=J(e,r[l]),e[o]=!(t[o]=r[l])}):function(e){return i(e,0,r)}):i}},pseudos:{not:o(function(e){var t=[],n=[],r=E(e.replace(ie,\"$1\"));return r[M]?o(function(e,t,n,o){for(var i,l=r(e,null,o,[]),s=e.length;s--;)(i=l[s])&&(e[s]=!(t[s]=i))}):function(e,o,i){return t[0]=e,r(t,null,i,n),t[0]=null,!n.pop()}}),has:o(function(e){return function(n){return t(e,n).length>0}}),contains:o(function(e){return e=e.replace(ve,we),function(t){return(t.textContent||t.innerText||x(t)).indexOf(e)>-1}}),lang:o(function(e){return ue.test(e||\"\")||t.error(\"unsupported lang: \"+e),e=e.replace(ve,we).toLowerCase(),function(t){var n;do{if(n=H?t.lang:t.getAttribute(\"xml:lang\")||t.getAttribute(\"lang\"))return(n=n.toLowerCase())===e||0===n.indexOf(e+\"-\")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===$},focus:function(e){return e===A.activeElement&&(!A.hasFocus||A.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:c(!1),disabled:c(!0),checked:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&!!e.checked||\"option\"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return fe.test(e.nodeName)},input:function(e){return pe.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&\"button\"===e.type||\"button\"===t},text:function(e){var t;return\"input\"===e.nodeName.toLowerCase()&&\"text\"===e.type&&(null==(t=e.getAttribute(\"type\"))||\"text\"===t.toLowerCase())},first:u(function(){return[0]}),last:u(function(e,t){return[t-1]}),eq:u(function(e,t,n){return[n<0?n+t:n]}),even:u(function(e,t){for(var n=0;n=0;)e.push(o);return e}),gt:u(function(e,t,n){for(var o=n<0?n+t:n;++o0,i=e.length>0,l=function(o,l,s,a,c){var u,d,p,f=0,h=\"0\",g=o&&[],v=[],w=T,y=o||i&&b.find.TAG(\"*\",c),C=j+=null==w?1:Math.random()||.1,x=y.length;for(c&&(T=l===A||l||c);h!==x&&null!=(u=y[h]);h++){if(i&&u){for(d=0,l||u.ownerDocument===A||(N(u),s=!H);p=e[d++];)if(p(u,l||A,s)){a.push(u);break}c&&(j=C)}r&&((u=!p&&u)&&f--,o&&g.push(u))}if(f+=h,r&&h!==f){for(d=0;p=n[d++];)p(g,v,l,s);if(o){if(f>0)for(;h--;)g[h]||v[h]||(v[h]=K.call(a));v=m(v)}Y.apply(a,v),c&&!o&&v.length>0&&f+n.length>1&&t.uniqueSort(a)}return c&&(j=C,T=w),g};return r?o(l):l}(l,i))).selector=e}return s},k=t.select=function(e,t,n,o){var r,i,l,s,a,c=\"function\"==typeof e&&e,u=!o&&S(e=c.selector||e);if(n=n||[],1===u.length){if((i=u[0]=u[0].slice(0)).length>2&&\"ID\"===(l=i[0]).type&&9===t.nodeType&&H&&b.relative[i[1].type]){if(!(t=(b.find.ID(l.matches[0].replace(ve,we),t)||[])[0]))return n;c&&(t=t.parentNode),e=e.slice(i.shift().value.length)}for(r=de.needsContext.test(e)?0:i.length;r--&&(l=i[r],!b.relative[s=l.type]);)if((a=b.find[s])&&(o=a(l.matches[0].replace(ve,we),me.test(i[0].type)&&d(t.parentNode)||t))){if(i.splice(r,1),!(e=o.length&&f(i)))return Y.apply(n,o),n;break}}return(c||E(e,u))(o,t,!H,n,!t||me.test(e)&&d(t.parentNode)||t),n},C.sortStable=M.split(\"\").sort(z).join(\"\")===M,C.detectDuplicates=!!D,N(),C.sortDetached=r(function(e){return 1&e.compareDocumentPosition(A.createElement(\"fieldset\"))}),r(function(e){return e.innerHTML=\"\",\"#\"===e.firstChild.getAttribute(\"href\")})||i(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),C.attributes&&r(function(e){return e.innerHTML=\"\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||i(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),r(function(e){return null==e.getAttribute(\"disabled\")})||i(Z,function(e,t,n){var o;if(!n)return!0===e[t]?t.toLowerCase():(o=e.getAttributeNode(t))&&o.specified?o.value:null}),t}(e);se.find=pe,se.expr=pe.selectors,se.expr[\":\"]=se.expr.pseudos,se.uniqueSort=se.unique=pe.uniqueSort,se.text=pe.getText,se.isXMLDoc=pe.isXML,se.contains=pe.contains,se.escapeSelector=pe.escape;var fe=function(e,t,n){for(var o=[],r=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(r&&se(e).is(n))break;o.push(e)}return o},he=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},ge=se.expr.match.needsContext,me=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i,ve=/^.[^:#\\[\\.,]*$/;se.filter=function(e,t,n){var o=t[0];return n&&(e=\":not(\"+e+\")\"),1===t.length&&1===o.nodeType?se.find.matchesSelector(o,e)?[o]:[]:se.find.matches(e,se.grep(t,function(e){return 1===e.nodeType}))},se.fn.extend({find:function(e){var t,n,o=this.length,r=this;if(\"string\"!=typeof e)return this.pushStack(se(e).filter(function(){for(t=0;t1?se.uniqueSort(n):n},filter:function(e){return this.pushStack(i(this,e||[],!1))},not:function(e){return this.pushStack(i(this,e||[],!0))},is:function(e){return!!i(this,\"string\"==typeof e&&ge.test(e)?se(e):e||[],!1).length}});var we,ye=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,Ce=se.fn.init=function(e,t,n){var o,r;if(!e)return this;if(n=n||we,\"string\"==typeof e){if(!(o=\"<\"===e[0]&&\">\"===e[e.length-1]&&e.length>=3?[null,e,null]:ye.exec(e))||!o[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(o[1]){if(t=t instanceof se?t[0]:t,se.merge(this,se.parseHTML(o[1],t&&t.nodeType?t.ownerDocument||t:G,!0)),me.test(o[1])&&se.isPlainObject(t))for(o in t)se.isFunction(this[o])?this[o](t[o]):this.attr(o,t[o]);return this}return(r=G.getElementById(o[2]))&&(this[0]=r,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):se.isFunction(e)?void 0!==n.ready?n.ready(e):e(se):se.makeArray(e,this)};Ce.prototype=se.fn,we=se(G);var be=/^(?:parents|prev(?:Until|All))/,xe={children:!0,contents:!0,next:!0,prev:!0};se.fn.extend({has:function(e){var t=se(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&se.find.matchesSelector(n,e))){i.push(n);break}return this.pushStack(i.length>1?se.uniqueSort(i):i)},index:function(e){return e?\"string\"==typeof e?ee.call(se(e),this[0]):ee.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(se.uniqueSort(se.merge(this.get(),se(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),se.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return fe(e,\"parentNode\")},parentsUntil:function(e,t,n){return fe(e,\"parentNode\",n)},next:function(e){return l(e,\"nextSibling\")},prev:function(e){return l(e,\"previousSibling\")},nextAll:function(e){return fe(e,\"nextSibling\")},prevAll:function(e){return fe(e,\"previousSibling\")},nextUntil:function(e,t,n){return fe(e,\"nextSibling\",n)},prevUntil:function(e,t,n){return fe(e,\"previousSibling\",n)},siblings:function(e){return he((e.parentNode||{}).firstChild,e)},children:function(e){return he(e.firstChild)},contents:function(e){return r(e,\"iframe\")?e.contentDocument:(r(e,\"template\")&&(e=e.content||e),se.merge([],e.childNodes))}},function(e,t){se.fn[e]=function(n,o){var r=se.map(this,t,n);return\"Until\"!==e.slice(-5)&&(o=n),o&&\"string\"==typeof o&&(r=se.filter(o,r)),this.length>1&&(xe[e]||se.uniqueSort(r),be.test(e)&&r.reverse()),this.pushStack(r)}});var Re=/[^\\x20\\t\\r\\n\\f]+/g;se.Callbacks=function(e){e=\"string\"==typeof e?function(e){var t={};return se.each(e.match(Re)||[],function(e,n){t[n]=!0}),t}(e):se.extend({},e);var t,n,o,r,i=[],l=[],s=-1,a=function(){for(r=r||e.once,o=t=!0;l.length;s=-1)for(n=l.shift();++s-1;)i.splice(n,1),n<=s&&s--}),this},has:function(e){return e?se.inArray(e,i)>-1:i.length>0},empty:function(){return i&&(i=[]),this},disable:function(){return r=l=[],i=n=\"\",this},disabled:function(){return!i},lock:function(){return r=l=[],n||t||(i=n=\"\"),this},locked:function(){return!!r},fireWith:function(e,n){return r||(n=[e,(n=n||[]).slice?n.slice():n],l.push(n),t||a()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!o}};return c},se.extend({Deferred:function(t){var n=[[\"notify\",\"progress\",se.Callbacks(\"memory\"),se.Callbacks(\"memory\"),2],[\"resolve\",\"done\",se.Callbacks(\"once memory\"),se.Callbacks(\"once memory\"),0,\"resolved\"],[\"reject\",\"fail\",se.Callbacks(\"once memory\"),se.Callbacks(\"once memory\"),1,\"rejected\"]],o=\"pending\",r={state:function(){return o},always:function(){return i.done(arguments).fail(arguments),this},catch:function(e){return r.then(null,e)},pipe:function(){var e=arguments;return se.Deferred(function(t){se.each(n,function(n,o){var r=se.isFunction(e[o[4]])&&e[o[4]];i[o[1]](function(){var e=r&&r.apply(this,arguments);e&&se.isFunction(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[o[0]+\"With\"](this,r?[e]:arguments)})}),e=null}).promise()},then:function(t,o,r){function i(t,n,o,r){return function(){var c=this,u=arguments,d=function(){var e,d;if(!(t=l&&(o!==a&&(c=void 0,u=[e]),n.rejectWith(c,u))}};t?p():(se.Deferred.getStackHook&&(p.stackTrace=se.Deferred.getStackHook()),e.setTimeout(p))}}var l=0;return se.Deferred(function(e){n[0][3].add(i(0,e,se.isFunction(r)?r:s,e.notifyWith)),n[1][3].add(i(0,e,se.isFunction(t)?t:s)),n[2][3].add(i(0,e,se.isFunction(o)?o:a))}).promise()},promise:function(e){return null!=e?se.extend(e,r):r}},i={};return se.each(n,function(e,t){var l=t[2],s=t[5];r[t[1]]=l.add,s&&l.add(function(){o=s},n[3-e][2].disable,n[0][2].lock),l.add(t[3].fire),i[t[0]]=function(){return i[t[0]+\"With\"](this===i?void 0:this,arguments),this},i[t[0]+\"With\"]=l.fireWith}),r.promise(i),t&&t.call(i,i),i},when:function(e){var t=arguments.length,n=t,o=Array(n),r=Q.call(arguments),i=se.Deferred(),l=function(e){return function(n){o[e]=this,r[e]=arguments.length>1?Q.call(arguments):n,--t||i.resolveWith(o,r)}};if(t<=1&&(c(e,i.done(l(n)).resolve,i.reject,!t),\"pending\"===i.state()||se.isFunction(r[n]&&r[n].then)))return i.then();for(;n--;)c(r[n],l(n),i.reject);return i.promise()}});var Se=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;se.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&Se.test(t.name)&&e.console.warn(\"jQuery.Deferred exception: \"+t.message,t.stack,n)},se.readyException=function(t){e.setTimeout(function(){throw t})};var Ee=se.Deferred();se.fn.ready=function(e){return Ee.then(e).catch(function(e){se.readyException(e)}),this},se.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--se.readyWait:se.isReady)||(se.isReady=!0,!0!==e&&--se.readyWait>0||Ee.resolveWith(G,[se]))}}),se.ready.then=Ee.then,\"complete\"===G.readyState||\"loading\"!==G.readyState&&!G.documentElement.doScroll?e.setTimeout(se.ready):(G.addEventListener(\"DOMContentLoaded\",u),e.addEventListener(\"load\",u));var ke=function(e,t,n,o,r,i,l){var s=0,a=e.length,c=null==n;if(\"object\"===se.type(n)){r=!0;for(s in n)ke(e,t,s,n[s],!0,i,l)}else if(void 0!==o&&(r=!0,se.isFunction(o)||(l=!0),c&&(l?(t.call(e,o),t=null):(c=t,t=function(e,t,n){return c.call(se(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){De.remove(this,e)})}}),se.extend({queue:function(e,t,n){var o;if(e)return t=(t||\"fx\")+\"queue\",o=Pe.get(e,t),n&&(!o||Array.isArray(n)?o=Pe.access(e,t,se.makeArray(n)):o.push(n)),o||[]},dequeue:function(e,t){t=t||\"fx\";var n=se.queue(e,t),o=n.length,r=n.shift(),i=se._queueHooks(e,t),l=function(){se.dequeue(e,t)};\"inprogress\"===r&&(r=n.shift(),o--),r&&(\"fx\"===t&&n.unshift(\"inprogress\"),delete i.stop,r.call(e,l,i)),!o&&i&&i.empty.fire()},_queueHooks:function(e,t){var n=t+\"queueHooks\";return Pe.get(e,n)||Pe.access(e,n,{empty:se.Callbacks(\"once memory\").add(function(){Pe.remove(e,[t+\"queue\",n])})})}}),se.fn.extend({queue:function(e,t){var n=2;return\"string\"!=typeof e&&(t=e,e=\"fx\",n--),arguments.length\\x20\\t\\r\\n\\f]+)/i,je=/^$|\\/(?:java|ecma)script/i,Ve={option:[1,\"\"],thead:[1,\"\",\"
\"],col:[2,\"\",\"
\"],tr:[2,\"\",\"
\"],td:[3,\"\",\"
\"],_default:[0,\"\",\"\"]};Ve.optgroup=Ve.option,Ve.tbody=Ve.tfoot=Ve.colgroup=Ve.caption=Ve.thead,Ve.th=Ve.td;var Be=/<|&#?\\w+;/;!function(){var e=G.createDocumentFragment(),t=e.appendChild(G.createElement(\"div\")),n=G.createElement(\"input\");n.setAttribute(\"type\",\"radio\"),n.setAttribute(\"checked\",\"checked\"),n.setAttribute(\"name\",\"t\"),t.appendChild(n),le.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML=\"\",le.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var qe=G.documentElement,Oe=/^key/,ze=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Xe=/^([^.]*)(?:\\.(.+)|)/;se.event={global:{},add:function(e,t,n,o,r){var i,l,s,a,c,u,d,p,f,h,g,m=Pe.get(e);if(m)for(n.handler&&(n=(i=n).handler,r=i.selector),r&&se.find.matchesSelector(qe,r),n.guid||(n.guid=se.guid++),(a=m.events)||(a=m.events={}),(l=m.handle)||(l=m.handle=function(t){return void 0!==se&&se.event.triggered!==t.type?se.event.dispatch.apply(e,arguments):void 0}),t=(t||\"\").match(Re)||[\"\"],c=t.length;c--;)s=Xe.exec(t[c])||[],f=g=s[1],h=(s[2]||\"\").split(\".\").sort(),f&&(d=se.event.special[f]||{},f=(r?d.delegateType:d.bindType)||f,d=se.event.special[f]||{},u=se.extend({type:f,origType:g,data:o,handler:n,guid:n.guid,selector:r,needsContext:r&&se.expr.match.needsContext.test(r),namespace:h.join(\".\")},i),(p=a[f])||((p=a[f]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(e,o,h,l)||e.addEventListener&&e.addEventListener(f,l)),d.add&&(d.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),r?p.splice(p.delegateCount++,0,u):p.push(u),se.event.global[f]=!0)},remove:function(e,t,n,o,r){var i,l,s,a,c,u,d,p,f,h,g,m=Pe.hasData(e)&&Pe.get(e);if(m&&(a=m.events)){for(t=(t||\"\").match(Re)||[\"\"],c=t.length;c--;)if(s=Xe.exec(t[c])||[],f=g=s[1],h=(s[2]||\"\").split(\".\").sort(),f){for(d=se.event.special[f]||{},f=(o?d.delegateType:d.bindType)||f,p=a[f]||[],s=s[2]&&new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),l=i=p.length;i--;)u=p[i],!r&&g!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||o&&o!==u.selector&&(\"**\"!==o||!u.selector)||(p.splice(i,1),u.selector&&p.delegateCount--,d.remove&&d.remove.call(e,u));l&&!p.length&&(d.teardown&&!1!==d.teardown.call(e,h,m.handle)||se.removeEvent(e,f,m.handle),delete a[f])}else for(f in a)se.event.remove(e,f+t[c],n,o,!0);se.isEmptyObject(a)&&Pe.remove(e,\"handle events\")}},dispatch:function(e){var t,n,o,r,i,l,s=se.event.fix(e),a=new Array(arguments.length),c=(Pe.get(this,\"events\")||{})[s.type]||[],u=se.event.special[s.type]||{};for(a[0]=s,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&(\"click\"!==e.type||!0!==c.disabled)){for(i=[],l={},n=0;n-1:se.find(r,this,null,[c]).length),l[r]&&i.push(o);i.length&&s.push({elem:c,handlers:i})}return c=this,a\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,Ke=/\\s*$/g;se.extend({htmlPrefilter:function(e){return e.replace(Ue,\"<$1>\")},clone:function(e,t,n){var o,r,i,l,s=e.cloneNode(!0),a=se.contains(e.ownerDocument,e);if(!(le.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||se.isXMLDoc(e)))for(l=m(s),i=m(e),o=0,r=i.length;o0&&v(l,!a&&m(e,\"script\")),s},cleanData:function(e){for(var t,n,o,r=se.event.special,i=0;void 0!==(n=e[i]);i++)if(Te(n)){if(t=n[Pe.expando]){if(t.events)for(o in t.events)r[o]?se.event.remove(n,o):se.removeEvent(n,o,t.handle);n[Pe.expando]=void 0}n[De.expando]&&(n[De.expando]=void 0)}}}),se.fn.extend({detach:function(e){return D(this,e,!0)},remove:function(e){return D(this,e)},text:function(e){return ke(this,function(e){return void 0===e?se.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return P(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=R(this,e);t.appendChild(e)}})},prepend:function(){return P(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=R(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return P(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return P(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(se.cleanData(m(e,!1)),e.textContent=\"\");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return se.clone(this,e,t)})},html:function(e){return ke(this,function(e){var t=this[0]||{},n=0,o=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if(\"string\"==typeof e&&!Ke.test(e)&&!Ve[(We.exec(e)||[\"\",\"\"])[1].toLowerCase()]){e=se.htmlPrefilter(e);try{for(;n1)}}),se.Tween=_,(_.prototype={constructor:_,init:function(e,t,n,o,r,i){this.elem=e,this.prop=n,this.easing=r||se.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=o,this.unit=i||(se.cssNumber[n]?\"\":\"px\")},cur:function(){var e=_.propHooks[this.prop];return e&&e.get?e.get(this):_.propHooks._default.get(this)},run:function(e){var t,n=_.propHooks[this.prop];return this.options.duration?this.pos=t=se.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):_.propHooks._default.set(this),this}}).init.prototype=_.prototype,(_.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=se.css(e.elem,e.prop,\"\"))&&\"auto\"!==t?t:0},set:function(e){se.fx.step[e.prop]?se.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[se.cssProps[e.prop]]&&!se.cssHooks[e.prop]?e.elem[e.prop]=e.now:se.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=_.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},se.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:\"swing\"},se.fx=_.prototype.init,se.fx.step={};var st,at,ct=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;se.Animation=se.extend(V,{tweeners:{\"*\":[function(e,t){var n=this.createTween(e,t);return f(n.elem,e,He.exec(t),n),n}]},tweener:function(e,t){se.isFunction(e)?(t=e,e=[\"*\"]):e=e.match(Re);for(var n,o=0,r=e.length;o1)},removeAttr:function(e){return this.each(function(){se.removeAttr(this,e)})}}),se.extend({attr:function(e,t,n){var o,r,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return void 0===e.getAttribute?se.prop(e,t,n):(1===i&&se.isXMLDoc(e)||(r=se.attrHooks[t.toLowerCase()]||(se.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void se.removeAttr(e,t):r&&\"set\"in r&&void 0!==(o=r.set(e,n,t))?o:(e.setAttribute(t,n+\"\"),n):r&&\"get\"in r&&null!==(o=r.get(e,t))?o:null==(o=se.find.attr(e,t))?void 0:o)},attrHooks:{type:{set:function(e,t){if(!le.radioValue&&\"radio\"===t&&r(e,\"input\")){var n=e.value;return e.setAttribute(\"type\",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,o=0,r=t&&t.match(Re);if(r&&1===e.nodeType)for(;n=r[o++];)e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?se.removeAttr(e,n):e.setAttribute(n,n),n}},se.each(se.expr.match.bool.source.match(/\\w+/g),function(e,t){var n=pt[t]||se.find.attr;pt[t]=function(e,t,o){var r,i,l=t.toLowerCase();return o||(i=pt[l],pt[l]=r,r=null!=n(e,t,o)?l:null,pt[l]=i),r}});var ft=/^(?:input|select|textarea|button)$/i,ht=/^(?:a|area)$/i;se.fn.extend({prop:function(e,t){return ke(this,se.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[se.propFix[e]||e]})}}),se.extend({prop:function(e,t,n){var o,r,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return 1===i&&se.isXMLDoc(e)||(t=se.propFix[t]||t,r=se.propHooks[t]),void 0!==n?r&&\"set\"in r&&void 0!==(o=r.set(e,n,t))?o:e[t]=n:r&&\"get\"in r&&null!==(o=r.get(e,t))?o:e[t]},propHooks:{tabIndex:{get:function(e){var t=se.find.attr(e,\"tabindex\");return t?parseInt(t,10):ft.test(e.nodeName)||ht.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:\"htmlFor\",class:\"className\"}}),le.optSelected||(se.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),se.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],function(){se.propFix[this.toLowerCase()]=this}),se.fn.extend({addClass:function(e){var t,n,o,r,i,l,s,a=0;if(se.isFunction(e))return this.each(function(t){se(this).addClass(e.call(this,t,q(this)))});if(\"string\"==typeof e&&e)for(t=e.match(Re)||[];n=this[a++];)if(r=q(n),o=1===n.nodeType&&\" \"+B(r)+\" \"){for(l=0;i=t[l++];)o.indexOf(\" \"+i+\" \")<0&&(o+=i+\" \");s=B(o),r!==s&&n.setAttribute(\"class\",s)}return this},removeClass:function(e){var t,n,o,r,i,l,s,a=0;if(se.isFunction(e))return this.each(function(t){se(this).removeClass(e.call(this,t,q(this)))});if(!arguments.length)return this.attr(\"class\",\"\");if(\"string\"==typeof e&&e)for(t=e.match(Re)||[];n=this[a++];)if(r=q(n),o=1===n.nodeType&&\" \"+B(r)+\" \"){for(l=0;i=t[l++];)for(;o.indexOf(\" \"+i+\" \")>-1;)o=o.replace(\" \"+i+\" \",\" \");s=B(o),r!==s&&n.setAttribute(\"class\",s)}return this},toggleClass:function(e,t){var n=typeof e;return\"boolean\"==typeof t&&\"string\"===n?t?this.addClass(e):this.removeClass(e):se.isFunction(e)?this.each(function(n){se(this).toggleClass(e.call(this,n,q(this),t),t)}):this.each(function(){var t,o,r,i;if(\"string\"===n)for(o=0,r=se(this),i=e.match(Re)||[];t=i[o++];)r.hasClass(t)?r.removeClass(t):r.addClass(t);else void 0!==e&&\"boolean\"!==n||((t=q(this))&&Pe.set(this,\"__className__\",t),this.setAttribute&&this.setAttribute(\"class\",t||!1===e?\"\":Pe.get(this,\"__className__\")||\"\"))})},hasClass:function(e){var t,n,o=0;for(t=\" \"+e+\" \";n=this[o++];)if(1===n.nodeType&&(\" \"+B(q(n))+\" \").indexOf(t)>-1)return!0;return!1}});var gt=/\\r/g;se.fn.extend({val:function(e){var t,n,o,r=this[0];if(arguments.length)return o=se.isFunction(e),this.each(function(n){var r;1===this.nodeType&&(null==(r=o?e.call(this,n,se(this).val()):e)?r=\"\":\"number\"==typeof r?r+=\"\":Array.isArray(r)&&(r=se.map(r,function(e){return null==e?\"\":e+\"\"})),(t=se.valHooks[this.type]||se.valHooks[this.nodeName.toLowerCase()])&&\"set\"in t&&void 0!==t.set(this,r,\"value\")||(this.value=r))});if(r)return(t=se.valHooks[r.type]||se.valHooks[r.nodeName.toLowerCase()])&&\"get\"in t&&void 0!==(n=t.get(r,\"value\"))?n:\"string\"==typeof(n=r.value)?n.replace(gt,\"\"):null==n?\"\":n}}),se.extend({valHooks:{option:{get:function(e){var t=se.find.attr(e,\"value\");return null!=t?t:B(se.text(e))}},select:{get:function(e){var t,n,o,i=e.options,l=e.selectedIndex,s=\"select-one\"===e.type,a=s?null:[],c=s?l+1:i.length;for(o=l<0?c:s?l:0;o-1)&&(n=!0);return n||(e.selectedIndex=-1),i}}}}),se.each([\"radio\",\"checkbox\"],function(){se.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=se.inArray(se(e).val(),t)>-1}},le.checkOn||(se.valHooks[this].get=function(e){return null===e.getAttribute(\"value\")?\"on\":e.value})});var mt=/^(?:focusinfocus|focusoutblur)$/;se.extend(se.event,{trigger:function(t,n,o,r){var i,l,s,a,c,u,d,p=[o||G],f=oe.call(t,\"type\")?t.type:t,h=oe.call(t,\"namespace\")?t.namespace.split(\".\"):[];if(l=s=o=o||G,3!==o.nodeType&&8!==o.nodeType&&!mt.test(f+se.event.triggered)&&(f.indexOf(\".\")>-1&&(h=f.split(\".\"),f=h.shift(),h.sort()),c=f.indexOf(\":\")<0&&\"on\"+f,t=t[se.expando]?t:new se.Event(f,\"object\"==typeof t&&t),t.isTrigger=r?2:3,t.namespace=h.join(\".\"),t.rnamespace=t.namespace?new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,t.result=void 0,t.target||(t.target=o),n=null==n?[t]:se.makeArray(n,[t]),d=se.event.special[f]||{},r||!d.trigger||!1!==d.trigger.apply(o,n))){if(!r&&!d.noBubble&&!se.isWindow(o)){for(a=d.delegateType||f,mt.test(a+f)||(l=l.parentNode);l;l=l.parentNode)p.push(l),s=l;s===(o.ownerDocument||G)&&p.push(s.defaultView||s.parentWindow||e)}for(i=0;(l=p[i++])&&!t.isPropagationStopped();)t.type=i>1?a:d.bindType||f,(u=(Pe.get(l,\"events\")||{})[t.type]&&Pe.get(l,\"handle\"))&&u.apply(l,n),(u=c&&l[c])&&u.apply&&Te(l)&&(t.result=u.apply(l,n),!1===t.result&&t.preventDefault());return t.type=f,r||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(p.pop(),n)||!Te(o)||c&&se.isFunction(o[f])&&!se.isWindow(o)&&((s=o[c])&&(o[c]=null),se.event.triggered=f,o[f](),se.event.triggered=void 0,s&&(o[c]=s)),t.result}},simulate:function(e,t,n){var o=se.extend(new se.Event,n,{type:e,isSimulated:!0});se.event.trigger(o,null,t)}}),se.fn.extend({trigger:function(e,t){return this.each(function(){se.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return se.event.trigger(e,t,n,!0)}}),se.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,t){se.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),se.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),le.focusin=\"onfocusin\"in e,le.focusin||se.each({focus:\"focusin\",blur:\"focusout\"},function(e,t){var n=function(e){se.event.simulate(t,e.target,se.event.fix(e))};se.event.special[t]={setup:function(){var o=this.ownerDocument||this,r=Pe.access(o,t);r||o.addEventListener(e,n,!0),Pe.access(o,t,(r||0)+1)},teardown:function(){var o=this.ownerDocument||this,r=Pe.access(o,t)-1;r?Pe.access(o,t,r):(o.removeEventListener(e,n,!0),Pe.remove(o,t))}}});var vt=e.location,wt=se.now(),yt=/\\?/;se.parseXML=function(t){var n;if(!t||\"string\"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,\"text/xml\")}catch(e){n=void 0}return n&&!n.getElementsByTagName(\"parsererror\").length||se.error(\"Invalid XML: \"+t),n};var Ct=/\\[\\]$/,bt=/\\r?\\n/g,xt=/^(?:submit|button|image|reset|file)$/i,Rt=/^(?:input|select|textarea|keygen)/i;se.param=function(e,t){var n,o=[],r=function(e,t){var n=se.isFunction(t)?t():t;o[o.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(null==n?\"\":n)};if(Array.isArray(e)||e.jquery&&!se.isPlainObject(e))se.each(e,function(){r(this.name,this.value)});else for(n in e)O(n,e[n],t,r);return o.join(\"&\")},se.fn.extend({serialize:function(){return se.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=se.prop(this,\"elements\");return e?se.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!se(this).is(\":disabled\")&&Rt.test(this.nodeName)&&!xt.test(e)&&(this.checked||!Me.test(e))}).map(function(e,t){var n=se(this).val();return null==n?null:Array.isArray(n)?se.map(n,function(e){return{name:t.name,value:e.replace(bt,\"\\r\\n\")}}):{name:t.name,value:n.replace(bt,\"\\r\\n\")}}).get()}});var St=/%20/g,Et=/#.*$/,kt=/([?&])_=[^&]*/,Tt=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,Pt=/^(?:GET|HEAD)$/,Dt=/^\\/\\//,Nt={},At={},$t=\"*/\".concat(\"*\"),Ht=G.createElement(\"a\");Ht.href=vt.href,se.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:vt.href,type:\"GET\",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(vt.protocol),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":$t,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/\\bxml\\b/,html:/\\bhtml/,json:/\\bjson\\b/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":JSON.parse,\"text xml\":se.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?U(U(e,se.ajaxSettings),t):U(se.ajaxSettings,e)},ajaxPrefilter:z(Nt),ajaxTransport:z(At),ajax:function(t,n){function o(t,n,o,s){var c,p,f,C,b,x=n;u||(u=!0,a&&e.clearTimeout(a),r=void 0,l=s||\"\",R.readyState=t>0?4:0,c=t>=200&&t<300||304===t,o&&(C=function(e,t,n){var o,r,i,l,s=e.contents,a=e.dataTypes;for(;\"*\"===a[0];)a.shift(),void 0===o&&(o=e.mimeType||t.getResponseHeader(\"Content-Type\"));if(o)for(r in s)if(s[r]&&s[r].test(o)){a.unshift(r);break}if(a[0]in n)i=a[0];else{for(r in n){if(!a[0]||e.converters[r+\" \"+a[0]]){i=r;break}l||(l=r)}i=i||l}if(i)return i!==a[0]&&a.unshift(i),n[i]}(h,R,o)),C=function(e,t,n,o){var r,i,l,s,a,c={},u=e.dataTypes.slice();if(u[1])for(l in e.converters)c[l.toLowerCase()]=e.converters[l];i=u.shift();for(;i;)if(e.responseFields[i]&&(n[e.responseFields[i]]=t),!a&&o&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),a=i,i=u.shift())if(\"*\"===i)i=a;else if(\"*\"!==a&&a!==i){if(!(l=c[a+\" \"+i]||c[\"* \"+i]))for(r in c)if((s=r.split(\" \"))[1]===i&&(l=c[a+\" \"+s[0]]||c[\"* \"+s[0]])){!0===l?l=c[r]:!0!==c[r]&&(i=s[0],u.unshift(s[1]));break}if(!0!==l)if(l&&e.throws)t=l(t);else try{t=l(t)}catch(e){return{state:\"parsererror\",error:l?e:\"No conversion from \"+a+\" to \"+i}}}return{state:\"success\",data:t}}(h,C,R,c),c?(h.ifModified&&((b=R.getResponseHeader(\"Last-Modified\"))&&(se.lastModified[i]=b),(b=R.getResponseHeader(\"etag\"))&&(se.etag[i]=b)),204===t||\"HEAD\"===h.type?x=\"nocontent\":304===t?x=\"notmodified\":(x=C.state,p=C.data,f=C.error,c=!f)):(f=x,!t&&x||(x=\"error\",t<0&&(t=0))),R.status=t,R.statusText=(n||x)+\"\",c?v.resolveWith(g,[p,x,R]):v.rejectWith(g,[R,x,f]),R.statusCode(y),y=void 0,d&&m.trigger(c?\"ajaxSuccess\":\"ajaxError\",[R,h,c?p:f]),w.fireWith(g,[R,x]),d&&(m.trigger(\"ajaxComplete\",[R,h]),--se.active||se.event.trigger(\"ajaxStop\")))}\"object\"==typeof t&&(n=t,t=void 0),n=n||{};var r,i,l,s,a,c,u,d,p,f,h=se.ajaxSetup({},n),g=h.context||h,m=h.context&&(g.nodeType||g.jquery)?se(g):se.event,v=se.Deferred(),w=se.Callbacks(\"once memory\"),y=h.statusCode||{},C={},b={},x=\"canceled\",R={readyState:0,getResponseHeader:function(e){var t;if(u){if(!s)for(s={};t=Tt.exec(l);)s[t[1].toLowerCase()]=t[2];t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return u?l:null},setRequestHeader:function(e,t){return null==u&&(e=b[e.toLowerCase()]=b[e.toLowerCase()]||e,C[e]=t),this},overrideMimeType:function(e){return null==u&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(u)R.always(e[R.status]);else for(t in e)y[t]=[y[t],e[t]];return this},abort:function(e){var t=e||x;return r&&r.abort(t),o(0,t),this}};if(v.promise(R),h.url=((t||h.url||vt.href)+\"\").replace(Dt,vt.protocol+\"//\"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||\"*\").toLowerCase().match(Re)||[\"\"],null==h.crossDomain){c=G.createElement(\"a\");try{c.href=h.url,c.href=c.href,h.crossDomain=Ht.protocol+\"//\"+Ht.host!=c.protocol+\"//\"+c.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&\"string\"!=typeof h.data&&(h.data=se.param(h.data,h.traditional)),X(Nt,h,n,R),u)return R;(d=se.event&&h.global)&&0==se.active++&&se.event.trigger(\"ajaxStart\"),h.type=h.type.toUpperCase(),h.hasContent=!Pt.test(h.type),i=h.url.replace(Et,\"\"),h.hasContent?h.data&&h.processData&&0===(h.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&(h.data=h.data.replace(St,\"+\")):(f=h.url.slice(i.length),h.data&&(i+=(yt.test(i)?\"&\":\"?\")+h.data,delete h.data),!1===h.cache&&(i=i.replace(kt,\"$1\"),f=(yt.test(i)?\"&\":\"?\")+\"_=\"+wt+++f),h.url=i+f),h.ifModified&&(se.lastModified[i]&&R.setRequestHeader(\"If-Modified-Since\",se.lastModified[i]),se.etag[i]&&R.setRequestHeader(\"If-None-Match\",se.etag[i])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&R.setRequestHeader(\"Content-Type\",h.contentType),R.setRequestHeader(\"Accept\",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+(\"*\"!==h.dataTypes[0]?\", \"+$t+\"; q=0.01\":\"\"):h.accepts[\"*\"]);for(p in h.headers)R.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,R,h)||u))return R.abort();if(x=\"abort\",w.add(h.complete),R.done(h.success),R.fail(h.error),r=X(At,h,n,R)){if(R.readyState=1,d&&m.trigger(\"ajaxSend\",[R,h]),u)return R;h.async&&h.timeout>0&&(a=e.setTimeout(function(){R.abort(\"timeout\")},h.timeout));try{u=!1,r.send(C,o)}catch(e){if(u)throw e;o(-1,e)}}else o(-1,\"No Transport\");return R},getJSON:function(e,t,n){return se.get(e,t,n,\"json\")},getScript:function(e,t){return se.get(e,void 0,t,\"script\")}}),se.each([\"get\",\"post\"],function(e,t){se[t]=function(e,n,o,r){return se.isFunction(n)&&(r=r||o,o=n,n=void 0),se.ajax(se.extend({url:e,type:t,dataType:r,data:n,success:o},se.isPlainObject(e)&&e))}}),se._evalUrl=function(e){return se.ajax({url:e,type:\"GET\",dataType:\"script\",cache:!0,async:!1,global:!1,throws:!0})},se.fn.extend({wrapAll:function(e){var t;return this[0]&&(se.isFunction(e)&&(e=e.call(this[0])),t=se(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return se.isFunction(e)?this.each(function(t){se(this).wrapInner(e.call(this,t))}):this.each(function(){var t=se(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=se.isFunction(e);return this.each(function(n){se(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not(\"body\").each(function(){se(this).replaceWith(this.childNodes)}),this}}),se.expr.pseudos.hidden=function(e){return!se.expr.pseudos.visible(e)},se.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},se.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Lt={0:200,1223:204},Ft=se.ajaxSettings.xhr();le.cors=!!Ft&&\"withCredentials\"in Ft,le.ajax=Ft=!!Ft,se.ajaxTransport(function(t){var n,o;if(le.cors||Ft&&!t.crossDomain)return{send:function(r,i){var l,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(l in t.xhrFields)s[l]=t.xhrFields[l];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||r[\"X-Requested-With\"]||(r[\"X-Requested-With\"]=\"XMLHttpRequest\");for(l in r)s.setRequestHeader(l,r[l]);n=function(e){return function(){n&&(n=o=s.onload=s.onerror=s.onabort=s.onreadystatechange=null,\"abort\"===e?s.abort():\"error\"===e?\"number\"!=typeof s.status?i(0,\"error\"):i(s.status,s.statusText):i(Lt[s.status]||s.status,s.statusText,\"text\"!==(s.responseType||\"text\")||\"string\"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),o=s.onerror=n(\"error\"),void 0!==s.onabort?s.onabort=o:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&o()})},n=n(\"abort\");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),se.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),se.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/\\b(?:java|ecma)script\\b/},converters:{\"text script\":function(e){return se.globalEval(e),e}}}),se.ajaxPrefilter(\"script\",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type=\"GET\")}),se.ajaxTransport(\"script\",function(e){if(e.crossDomain){var t,n;return{send:function(o,r){t=se(\"\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", " \n", " \n", "\n", "\n", "\n", "\n", "
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import bokeh.io\n", "import bokeh.plotting\n", "bokeh.io.output_notebook()\n", "\n", "import holoviews as hv\n", "hv.extension('bokeh')" ] }, { "cell_type": "code", "execution_count": 182, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(233, 301)" ] }, "execution_count": 182, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train.shape" ] }, { "cell_type": "code", "execution_count": 187, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/80\n", "233/233 [==============================] - 1s 6ms/step - loss: 0.1460 - acc: 0.2103\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 326us/step - loss: 0.1375 - acc: 0.5794\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 246us/step - loss: 0.1323 - acc: 0.7253\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 180us/step - loss: 0.1280 - acc: 0.7811\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 294us/step - loss: 0.1245 - acc: 0.8069\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.1214 - acc: 0.8155\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.1188 - acc: 0.8283\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 180us/step - loss: 0.1164 - acc: 0.8155\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.1142 - acc: 0.8455\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.1121 - acc: 0.8584\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.1100 - acc: 0.8584\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.1080 - acc: 0.8627\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.1061 - acc: 0.8627\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.1042 - acc: 0.8670\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 276us/step - loss: 0.1024 - acc: 0.8670\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.1006 - acc: 0.8670\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 258us/step - loss: 0.0988 - acc: 0.8670\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0972 - acc: 0.8755\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0955 - acc: 0.8755\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0938 - acc: 0.8841\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0922 - acc: 0.8841\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0905 - acc: 0.9056\n", "Epoch 23/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0865 - acc: 0.900 - 0s 209us/step - loss: 0.0889 - acc: 0.9056\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 250us/step - loss: 0.0874 - acc: 0.9056\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0859 - acc: 0.9099\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0844 - acc: 0.9142\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0830 - acc: 0.9142\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.0815 - acc: 0.9142\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0802 - acc: 0.9142\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0788 - acc: 0.9142\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0775 - acc: 0.9142\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0762 - acc: 0.9185\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0749 - acc: 0.9185\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0737 - acc: 0.9185\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0724 - acc: 0.9227\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0712 - acc: 0.9185\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 231us/step - loss: 0.0699 - acc: 0.9185\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0687 - acc: 0.9185\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0675 - acc: 0.9185\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 239us/step - loss: 0.0663 - acc: 0.9142\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0652 - acc: 0.9185\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0641 - acc: 0.9099\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0629 - acc: 0.9099\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.0619 - acc: 0.9099\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0608 - acc: 0.9099\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0597 - acc: 0.9099\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0587 - acc: 0.9185\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0577 - acc: 0.9099\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 233us/step - loss: 0.0567 - acc: 0.9185\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0557 - acc: 0.9185\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0547 - acc: 0.9227\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 178us/step - loss: 0.0538 - acc: 0.9185\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0528 - acc: 0.9227\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 179us/step - loss: 0.0519 - acc: 0.9227\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 163us/step - loss: 0.0509 - acc: 0.9313\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.0500 - acc: 0.9399\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 168us/step - loss: 0.0490 - acc: 0.9399\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0481 - acc: 0.9399\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.0472 - acc: 0.9399\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.0463 - acc: 0.9399\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 175us/step - loss: 0.0454 - acc: 0.9442\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 169us/step - loss: 0.0446 - acc: 0.9442\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 179us/step - loss: 0.0437 - acc: 0.9442\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0429 - acc: 0.9442\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0421 - acc: 0.9442\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 178us/step - loss: 0.0414 - acc: 0.9442\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 173us/step - loss: 0.0406 - acc: 0.9442\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0398 - acc: 0.9442\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0391 - acc: 0.9399\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0383 - acc: 0.9442\n", "Epoch 71/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0394 - acc: 0.933 - 0s 217us/step - loss: 0.0376 - acc: 0.9399\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.0368 - acc: 0.9399\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.0361 - acc: 0.9399\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0353 - acc: 0.9399\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0346 - acc: 0.9399\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0339 - acc: 0.9399\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0332 - acc: 0.9399\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0325 - acc: 0.9399\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0319 - acc: 0.9399\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0312 - acc: 0.9399\n" ] } ], "source": [ "#softmax activation\n", "model = Sequential()\n", "model.add(Dense(units=500, activation='softmax', input_dim=n_components))\n", "model.add(Dense(units=8))# 7 cluster classif. output\n", "model.compile(loss= 'mse', optimizer='RMSprop', metrics= ['accuracy'])\n", "history = model.fit(X_train, y_train, epochs=80, batch_size= 60)" ] }, { "cell_type": "code", "execution_count": 188, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"e28c27da-6dd7-4509-b90d-2cc39cc96336\":{\"roots\":{\"references\":[{\"attributes\":{\"data_source\":{\"id\":\"3e13fdd9-fee6-4d06-ad4a-15e4058a12ea\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"e0e0cf8e-4a4c-4539-90f4-92e3f29c8681\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"715158fa-4257-4249-865d-9550ee3fceef\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"9e478fe1-efa5-4e1c-b2bd-d3df3c3b74d9\",\"type\":\"CDSView\"}},\"id\":\"557c7334-fdd7-4f33-8ef6-933530591608\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1f6d20ce-b0ee-4d7e-9215-48de5b685fa0\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"epoch\",\"formatter\":{\"id\":\"d189dbcd-9343-4b70-8887-67ab369ddf63\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"186739e7-63e7-4fa0-bbce-bc48974c7245\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1f6d20ce-b0ee-4d7e-9215-48de5b685fa0\",\"type\":\"BasicTicker\"}},\"id\":\"2fbb60d5-c139-4186-bcc7-a3ffddae1339\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"3324f6df-ed4b-4a7d-a84f-0c03a148b81a\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"accuracy\",\"formatter\":{\"id\":\"3f73fec9-6c0b-4bd0-a8fd-c3710d2f59b4\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"186739e7-63e7-4fa0-bbce-bc48974c7245\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"ce729b0a-f49a-4f6a-996d-352c0d569ff6\",\"type\":\"BasicTicker\"}},\"id\":\"43feabe9-d1b7-430e-96e7-2b89f210a3d5\",\"type\":\"LinearAxis\"},{\"attributes\":{\"plot\":{\"id\":\"186739e7-63e7-4fa0-bbce-bc48974c7245\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1f6d20ce-b0ee-4d7e-9215-48de5b685fa0\",\"type\":\"BasicTicker\"}},\"id\":\"0eb5e349-7a56-4277-ad1c-13be3079703c\",\"type\":\"Grid\"},{\"attributes\":{\"below\":[{\"id\":\"2fbb60d5-c139-4186-bcc7-a3ffddae1339\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"43feabe9-d1b7-430e-96e7-2b89f210a3d5\",\"type\":\"LinearAxis\"}],\"plot_height\":400,\"plot_width\":650,\"renderers\":[{\"id\":\"2fbb60d5-c139-4186-bcc7-a3ffddae1339\",\"type\":\"LinearAxis\"},{\"id\":\"0eb5e349-7a56-4277-ad1c-13be3079703c\",\"type\":\"Grid\"},{\"id\":\"43feabe9-d1b7-430e-96e7-2b89f210a3d5\",\"type\":\"LinearAxis\"},{\"id\":\"f2f52639-77ba-4db8-a82c-62cb2895074a\",\"type\":\"Grid\"},{\"id\":\"cb0758c1-a65d-4a4b-b144-cfb1a89ddea5\",\"type\":\"BoxAnnotation\"},{\"id\":\"557c7334-fdd7-4f33-8ef6-933530591608\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"3b7cd1ab-659e-4789-a387-9729871a9aac\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"5f1bd819-e9b2-47c5-a86d-c314f1a997f7\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"d2db0ad0-9d85-4a7a-bfe5-6579c1d466ce\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"2644b84c-0349-476b-b8a2-d8a43e3f3dfa\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"6f0822f9-d980-4692-8d80-0690df787de7\",\"type\":\"Range1d\"},\"y_scale\":{\"id\":\"3324f6df-ed4b-4a7d-a84f-0c03a148b81a\",\"type\":\"LinearScale\"}},\"id\":\"186739e7-63e7-4fa0-bbce-bc48974c7245\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"ce729b0a-f49a-4f6a-996d-352c0d569ff6\",\"type\":\"BasicTicker\"},{\"attributes\":{\"source\":{\"id\":\"3e13fdd9-fee6-4d06-ad4a-15e4058a12ea\",\"type\":\"ColumnDataSource\"}},\"id\":\"9e478fe1-efa5-4e1c-b2bd-d3df3c3b74d9\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80],\"y\":[0.2103004279694332,0.5793991380495063,0.7253218835515526,0.7811158852004186,0.806866947673421,0.8154506317535695,0.8283261733505347,0.8154506471024051,0.8454935693945496,0.8583691076659338,0.8583690925729122,0.8626609482990314,0.862660949578101,0.8669527771646884,0.8669527909786404,0.8669527912344543,0.866952806327476,0.875536474802975,0.8755364753146029,0.8841201719296337,0.884120156836612,0.905579395304422,0.9055793958160498,0.9055794111648854,0.9098712367049614,0.9141630924310807,0.9141630793845704,0.9141630944775921,0.9141630939659643,0.9141630947334061,0.9141630924310807,0.9184549338316201,0.9184549345990619,0.9184549353665037,0.9227467775344849,0.9184549338316201,0.9184549207851099,0.9184549499478974,0.9184549504595253,0.9141630793845704,0.9184549345990619,0.909871252309611,0.9098712372165892,0.909871237984031,0.9098712356817057,0.9098712364491475,0.9184549499478974,0.9098712367049614,0.9184549499478974,0.9184549353665037,0.9227467905809951,0.9184549345990619,0.9227467775344849,0.9227467905809951,0.9313304756843993,0.9399141561831528,0.9399141574622224,0.9399141728110579,0.939914158997106,0.9399141577180363,0.9442060142115973,0.9442059996302036,0.9442059998860175,0.9442059998860175,0.9442060142115973,0.944206029560433,0.9442059991185757,0.944205998351134,0.9399141728110579,0.9442059991185757,0.9399141728110579,0.9399141577180363,0.9399141584854781,0.9399141584854781,0.9399141584854781,0.9399141569505945,0.9399141569505945,0.9399141715319883,0.9399141728110579,0.9399141728110579]}},\"id\":\"3e13fdd9-fee6-4d06-ad4a-15e4058a12ea\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"4cf4952b-1608-40be-be2b-4ead3d750e1a\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2644b84c-0349-476b-b8a2-d8a43e3f3dfa\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"051fa77f-6e78-4d23-ba95-1a9a232ab708\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"f7ab8c44-0108-4b02-b728-66a69366abe5\",\"type\":\"ResetTool\"},{\"attributes\":{\"callback\":null},\"id\":\"d2db0ad0-9d85-4a7a-bfe5-6579c1d466ce\",\"type\":\"DataRange1d\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"4cf4952b-1608-40be-be2b-4ead3d750e1a\",\"type\":\"PanTool\"},{\"id\":\"051fa77f-6e78-4d23-ba95-1a9a232ab708\",\"type\":\"WheelZoomTool\"},{\"id\":\"57716fe9-9076-42ad-be1f-35be75d66845\",\"type\":\"BoxZoomTool\"},{\"id\":\"58d28df5-8726-43a7-86fe-eca9c5f5eec0\",\"type\":\"SaveTool\"},{\"id\":\"f7ab8c44-0108-4b02-b728-66a69366abe5\",\"type\":\"ResetTool\"},{\"id\":\"9102eac5-7ad7-485d-affd-8026a954732d\",\"type\":\"HelpTool\"}]},\"id\":\"5f1bd819-e9b2-47c5-a86d-c314f1a997f7\",\"type\":\"Toolbar\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.3},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"e0e0cf8e-4a4c-4539-90f4-92e3f29c8681\",\"type\":\"Circle\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"cb0758c1-a65d-4a4b-b144-cfb1a89ddea5\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"715158fa-4257-4249-865d-9550ee3fceef\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"9102eac5-7ad7-485d-affd-8026a954732d\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"3f73fec9-6c0b-4bd0-a8fd-c3710d2f59b4\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null},\"id\":\"6f0822f9-d980-4692-8d80-0690df787de7\",\"type\":\"Range1d\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"186739e7-63e7-4fa0-bbce-bc48974c7245\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"ce729b0a-f49a-4f6a-996d-352c0d569ff6\",\"type\":\"BasicTicker\"}},\"id\":\"f2f52639-77ba-4db8-a82c-62cb2895074a\",\"type\":\"Grid\"},{\"attributes\":{\"overlay\":{\"id\":\"cb0758c1-a65d-4a4b-b144-cfb1a89ddea5\",\"type\":\"BoxAnnotation\"}},\"id\":\"57716fe9-9076-42ad-be1f-35be75d66845\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"58d28df5-8726-43a7-86fe-eca9c5f5eec0\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"d189dbcd-9343-4b70-8887-67ab369ddf63\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"plot\":null,\"text\":\"Model Training Accuracy P. aeruginosa\"},\"id\":\"3b7cd1ab-659e-4789-a387-9729871a9aac\",\"type\":\"Title\"}],\"root_ids\":[\"186739e7-63e7-4fa0-bbce-bc48974c7245\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.14\"}};\n", " var render_items = [{\"docid\":\"e28c27da-6dd7-4509-b90d-2cc39cc96336\",\"elementid\":\"420c3e0f-1c2b-4e21-bf57-d30a3492f64a\",\"modelid\":\"186739e7-63e7-4fa0-bbce-bc48974c7245\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "186739e7-63e7-4fa0-bbce-bc48974c7245" } }, "output_type": "display_data" } ], "source": [ "x = bokeh.plotting.figure(height=400,\n", " width=650,\n", " x_axis_label='epoch', \n", " y_axis_label='accuracy',\n", " y_range=(0, 1), title= 'Model Training Accuracy P. aeruginosa')\n", "\n", "x.circle(x = np.arange(1,81,1), y = history.history['acc'] , fill_alpha = 0.3)\n", "#x.line(t, p[:,1])\n", "#x.line(t, p[:,2])\n", "bokeh.io.show(x)" ] }, { "cell_type": "code", "execution_count": 243, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/80\n", "233/233 [==============================] - 3s 14ms/step - loss: 0.1461 - acc: 0.2146\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 289us/step - loss: 0.1374 - acc: 0.6094\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.1321 - acc: 0.7167\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.1280 - acc: 0.8069\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.1244 - acc: 0.8240\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.1213 - acc: 0.8283\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.1187 - acc: 0.8455\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.1162 - acc: 0.8412\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.1139 - acc: 0.8498\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.1117 - acc: 0.8455\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.1096 - acc: 0.8369\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.1076 - acc: 0.8670\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.1057 - acc: 0.8541\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.1038 - acc: 0.8541\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.1019 - acc: 0.8584\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.1002 - acc: 0.8670\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0985 - acc: 0.8670\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0968 - acc: 0.8712\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0951 - acc: 0.8712\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0935 - acc: 0.8712\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0919 - acc: 0.8755\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0904 - acc: 0.8798\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0888 - acc: 0.8712\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0873 - acc: 0.8755\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0859 - acc: 0.8670\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0844 - acc: 0.8755\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 231us/step - loss: 0.0830 - acc: 0.8627\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0817 - acc: 0.8670\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0803 - acc: 0.8627\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0790 - acc: 0.8712\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.0777 - acc: 0.8627\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0764 - acc: 0.8712\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0752 - acc: 0.8670\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0739 - acc: 0.8712\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0727 - acc: 0.8627\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0715 - acc: 0.8712\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0703 - acc: 0.8670\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0691 - acc: 0.8712\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0680 - acc: 0.8755\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 253us/step - loss: 0.0668 - acc: 0.8798\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0657 - acc: 0.8712\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0646 - acc: 0.8755\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0635 - acc: 0.8712\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0624 - acc: 0.8712\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0613 - acc: 0.8712\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0603 - acc: 0.8755\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0593 - acc: 0.8627\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0582 - acc: 0.8670\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0572 - acc: 0.8670\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0562 - acc: 0.8755\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0553 - acc: 0.9013\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 231us/step - loss: 0.0543 - acc: 0.9227\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0534 - acc: 0.9185\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 233us/step - loss: 0.0525 - acc: 0.9270\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 239us/step - loss: 0.0516 - acc: 0.9227\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0507 - acc: 0.9270\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0498 - acc: 0.9227\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0489 - acc: 0.9270\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0481 - acc: 0.9270\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0472 - acc: 0.9270\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0464 - acc: 0.9227\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0456 - acc: 0.9270\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0447 - acc: 0.9313\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0439 - acc: 0.9270\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0431 - acc: 0.9270\n", "Epoch 66/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0462 - acc: 0.916 - 0s 202us/step - loss: 0.0423 - acc: 0.9270\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0415 - acc: 0.9313\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 246us/step - loss: 0.0407 - acc: 0.9270\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0399 - acc: 0.9313\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0392 - acc: 0.9270\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0385 - acc: 0.9313\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0378 - acc: 0.9270\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0371 - acc: 0.9313\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0364 - acc: 0.9270\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0357 - acc: 0.9313\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0350 - acc: 0.9270\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0344 - acc: 0.9270\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0337 - acc: 0.9227\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0331 - acc: 0.9270\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0324 - acc: 0.9227\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 8ms/step - loss: 0.1463 - acc: 0.2318\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 157us/step - loss: 0.1376 - acc: 0.5536\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 157us/step - loss: 0.1324 - acc: 0.7425\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 162us/step - loss: 0.1284 - acc: 0.8112\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.1250 - acc: 0.8369\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.1220 - acc: 0.8541\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.1193 - acc: 0.8369\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.1169 - acc: 0.8283\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.1146 - acc: 0.8326\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.1123 - acc: 0.8283\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 300us/step - loss: 0.1102 - acc: 0.8369\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.1081 - acc: 0.8455\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.1061 - acc: 0.8455\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.1042 - acc: 0.8498\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.1024 - acc: 0.8455\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.1006 - acc: 0.8498\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.0989 - acc: 0.8498\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0971 - acc: 0.8455\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0955 - acc: 0.8455\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0938 - acc: 0.8541\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0922 - acc: 0.8498\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0907 - acc: 0.8498\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0891 - acc: 0.8541\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0876 - acc: 0.8584\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0861 - acc: 0.8584\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0847 - acc: 0.8584\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0833 - acc: 0.8584\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0820 - acc: 0.8498\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.0806 - acc: 0.8498\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 179us/step - loss: 0.0793 - acc: 0.8798\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.0780 - acc: 0.8884\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0767 - acc: 0.8927\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0755 - acc: 0.8970\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.0742 - acc: 0.8970\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0730 - acc: 0.8970\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0717 - acc: 0.8970\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0706 - acc: 0.8970\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0694 - acc: 0.9013\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0683 - acc: 0.8927\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0672 - acc: 0.9099\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0661 - acc: 0.9142\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0649 - acc: 0.9185\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0638 - acc: 0.9185\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0628 - acc: 0.9185\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0617 - acc: 0.9185\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 246us/step - loss: 0.0607 - acc: 0.9185\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 251us/step - loss: 0.0596 - acc: 0.9185\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0586 - acc: 0.9185\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.0576 - acc: 0.9185\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0566 - acc: 0.9185\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0556 - acc: 0.9185\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 179us/step - loss: 0.0546 - acc: 0.9185\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0536 - acc: 0.9185\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0527 - acc: 0.9185\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0518 - acc: 0.9185\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0508 - acc: 0.9185\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0499 - acc: 0.9185\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0491 - acc: 0.9185\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0482 - acc: 0.9185\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0473 - acc: 0.9185\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0464 - acc: 0.9185\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 172us/step - loss: 0.0456 - acc: 0.9185\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0448 - acc: 0.9185\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0440 - acc: 0.9185\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0432 - acc: 0.9185\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0424 - acc: 0.9185\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0416 - acc: 0.9185\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0409 - acc: 0.9185\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0401 - acc: 0.9185\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0394 - acc: 0.9185\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 175us/step - loss: 0.0386 - acc: 0.9185\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.0379 - acc: 0.9227\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 180us/step - loss: 0.0371 - acc: 0.9185\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0363 - acc: 0.9270\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0356 - acc: 0.9227\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0349 - acc: 0.9270\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.0342 - acc: 0.9227\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 165us/step - loss: 0.0336 - acc: 0.9270\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0329 - acc: 0.9227\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0323 - acc: 0.9270\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 8ms/step - loss: 0.1471 - acc: 0.1974\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 173us/step - loss: 0.1379 - acc: 0.5064\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 163us/step - loss: 0.1322 - acc: 0.6695\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 169us/step - loss: 0.1280 - acc: 0.7296\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.1247 - acc: 0.7597\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.1218 - acc: 0.7940\n", "Epoch 7/80\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "233/233 [==============================] - 0s 186us/step - loss: 0.1192 - acc: 0.8026\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.1168 - acc: 0.8155\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.1145 - acc: 0.8326\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.1123 - acc: 0.8326\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 245us/step - loss: 0.1101 - acc: 0.8283\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.1081 - acc: 0.8584\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.1061 - acc: 0.8627\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.1042 - acc: 0.8712\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.1023 - acc: 0.8712\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.1005 - acc: 0.8712\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0988 - acc: 0.8670\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.0971 - acc: 0.8670\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 243us/step - loss: 0.0954 - acc: 0.8712\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0938 - acc: 0.8798\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0922 - acc: 0.8755\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0906 - acc: 0.8755\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0891 - acc: 0.8755\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0876 - acc: 0.8670\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0861 - acc: 0.8712\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0846 - acc: 0.8712\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0832 - acc: 0.8712\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0817 - acc: 0.8712\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0803 - acc: 0.8755\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0790 - acc: 0.8712\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0777 - acc: 0.8798\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0764 - acc: 0.8798\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0751 - acc: 0.8841\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0739 - acc: 0.8798\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0726 - acc: 0.8798\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0714 - acc: 0.8798\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0702 - acc: 0.8798\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0690 - acc: 0.8798\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 256us/step - loss: 0.0677 - acc: 0.8755\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0666 - acc: 0.8798\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0654 - acc: 0.8841\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0642 - acc: 0.8798\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0630 - acc: 0.8841\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0619 - acc: 0.8841\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0608 - acc: 0.8841\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0596 - acc: 0.8884\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.0585 - acc: 0.8841\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0573 - acc: 0.8755\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0563 - acc: 0.8884\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 180us/step - loss: 0.0553 - acc: 0.8927\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0543 - acc: 0.8927\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0533 - acc: 0.9099\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0523 - acc: 0.9056\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0514 - acc: 0.9056\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0505 - acc: 0.9099\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0496 - acc: 0.9056\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0487 - acc: 0.9056\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0478 - acc: 0.9056\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0469 - acc: 0.9056\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0460 - acc: 0.9056\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0452 - acc: 0.9056\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0443 - acc: 0.9013\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0435 - acc: 0.8970\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0427 - acc: 0.9013\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0419 - acc: 0.9013\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0411 - acc: 0.8927\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0404 - acc: 0.9056\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 175us/step - loss: 0.0396 - acc: 0.9056\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0388 - acc: 0.9013\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0380 - acc: 0.9056\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0373 - acc: 0.9099\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0366 - acc: 0.9099\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0358 - acc: 0.9142\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0350 - acc: 0.9142\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0343 - acc: 0.9142\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0336 - acc: 0.9142\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0329 - acc: 0.9185\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0323 - acc: 0.9142\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0316 - acc: 0.9185\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0310 - acc: 0.9185\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 8ms/step - loss: 0.1464 - acc: 0.3004\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 162us/step - loss: 0.1374 - acc: 0.6052\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 150us/step - loss: 0.1322 - acc: 0.7382\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 144us/step - loss: 0.1281 - acc: 0.8112\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 157us/step - loss: 0.1247 - acc: 0.8541\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.1217 - acc: 0.8670\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.1190 - acc: 0.8841\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.1165 - acc: 0.8798\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.1142 - acc: 0.8927\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.1120 - acc: 0.8884\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.1099 - acc: 0.8798\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.1079 - acc: 0.8927\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.1059 - acc: 0.8970\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.1040 - acc: 0.8884\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.1021 - acc: 0.8970\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.1002 - acc: 0.8927\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0984 - acc: 0.8927\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0967 - acc: 0.8927\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0950 - acc: 0.8970\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0933 - acc: 0.9099\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0917 - acc: 0.9056\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0901 - acc: 0.8970\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0886 - acc: 0.9013\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0871 - acc: 0.9013\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0857 - acc: 0.9056\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0843 - acc: 0.9056\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0829 - acc: 0.9056\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0815 - acc: 0.9013\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0801 - acc: 0.9013\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0788 - acc: 0.9013\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0775 - acc: 0.8970\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0762 - acc: 0.8970\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0750 - acc: 0.9056\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0738 - acc: 0.9013\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0726 - acc: 0.9056\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0714 - acc: 0.9099\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0702 - acc: 0.9056\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.0690 - acc: 0.9056\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0679 - acc: 0.9142\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0667 - acc: 0.9142\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0656 - acc: 0.9056\n", "Epoch 42/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0671 - acc: 0.916 - 0s 221us/step - loss: 0.0645 - acc: 0.9056\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0634 - acc: 0.9013\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0623 - acc: 0.9013\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0612 - acc: 0.9013\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0602 - acc: 0.8970\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0591 - acc: 0.8970\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0581 - acc: 0.8927\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0571 - acc: 0.8927\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0561 - acc: 0.8927\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0552 - acc: 0.8970\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0542 - acc: 0.8927\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0533 - acc: 0.9013\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0524 - acc: 0.8927\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0514 - acc: 0.9013\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0505 - acc: 0.9013\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0496 - acc: 0.9056\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0487 - acc: 0.9099\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0479 - acc: 0.9099\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0470 - acc: 0.9056\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0461 - acc: 0.9099\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0452 - acc: 0.9056\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0444 - acc: 0.9099\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0435 - acc: 0.9013\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0427 - acc: 0.9099\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0419 - acc: 0.9013\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0411 - acc: 0.9227\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 178us/step - loss: 0.0403 - acc: 0.9142\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0395 - acc: 0.9013\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0388 - acc: 0.9013\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0380 - acc: 0.9056\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0372 - acc: 0.8970\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0365 - acc: 0.9099\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0358 - acc: 0.8970\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0350 - acc: 0.9056\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0342 - acc: 0.9013\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0336 - acc: 0.9056\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0329 - acc: 0.9013\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0322 - acc: 0.9142\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0316 - acc: 0.9013\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 8ms/step - loss: 0.1461 - acc: 0.2618\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.1370 - acc: 0.6180\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.1316 - acc: 0.7639\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.1275 - acc: 0.7897\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.1242 - acc: 0.7897\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.1213 - acc: 0.8112\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 272us/step - loss: 0.1187 - acc: 0.8283\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.1162 - acc: 0.8283\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.1140 - acc: 0.8369\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.1118 - acc: 0.8455\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.1098 - acc: 0.8412\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.1078 - acc: 0.8412\n", "Epoch 13/80\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "233/233 [==============================] - 0s 194us/step - loss: 0.1059 - acc: 0.8283\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.1041 - acc: 0.8455\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.1023 - acc: 0.8369\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.1006 - acc: 0.8455\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0989 - acc: 0.8498\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0972 - acc: 0.8541\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0955 - acc: 0.8498\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0939 - acc: 0.8455\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0923 - acc: 0.8455\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0908 - acc: 0.8541\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0893 - acc: 0.8498\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0878 - acc: 0.8498\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0863 - acc: 0.8498\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0849 - acc: 0.8455\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0834 - acc: 0.8455\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 178us/step - loss: 0.0820 - acc: 0.8498\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0806 - acc: 0.8541\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 168us/step - loss: 0.0793 - acc: 0.8541\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0779 - acc: 0.8541\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.0766 - acc: 0.8541\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0753 - acc: 0.8584\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0740 - acc: 0.8584\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0727 - acc: 0.8584\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0714 - acc: 0.8627\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 275us/step - loss: 0.0702 - acc: 0.8584\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0690 - acc: 0.8627\n", "Epoch 39/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0706 - acc: 0.800 - 0s 192us/step - loss: 0.0678 - acc: 0.8712\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0666 - acc: 0.8627\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.0655 - acc: 0.8670\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.0643 - acc: 0.8712\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0632 - acc: 0.8712\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0622 - acc: 0.8712\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0611 - acc: 0.8712\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0600 - acc: 0.8712\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 175us/step - loss: 0.0590 - acc: 0.8755\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0580 - acc: 0.8755\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0570 - acc: 0.8755\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0560 - acc: 0.8798\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 238us/step - loss: 0.0550 - acc: 0.8798\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0540 - acc: 0.8841\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.0531 - acc: 0.8798\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0522 - acc: 0.8841\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0512 - acc: 0.8798\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0503 - acc: 0.8841\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0494 - acc: 0.8798\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 256us/step - loss: 0.0485 - acc: 0.8841\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0476 - acc: 0.8798\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0468 - acc: 0.8841\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0460 - acc: 0.8798\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0451 - acc: 0.8841\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.0443 - acc: 0.8798\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0434 - acc: 0.8841\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 180us/step - loss: 0.0425 - acc: 0.8798\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0417 - acc: 0.9099\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0409 - acc: 0.9099\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 251us/step - loss: 0.0401 - acc: 0.8970\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 256us/step - loss: 0.0393 - acc: 0.9099\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0386 - acc: 0.9185\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0378 - acc: 0.9185\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0370 - acc: 0.9142\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0362 - acc: 0.9185\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0354 - acc: 0.9185\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0347 - acc: 0.9185\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.0340 - acc: 0.9185\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0333 - acc: 0.9099\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0325 - acc: 0.9142\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 250us/step - loss: 0.0317 - acc: 0.9142\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0310 - acc: 0.9099\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 9ms/step - loss: 0.1466 - acc: 0.2918\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 147us/step - loss: 0.1375 - acc: 0.6137\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 157us/step - loss: 0.1319 - acc: 0.7511\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 153us/step - loss: 0.1276 - acc: 0.8112\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 157us/step - loss: 0.1242 - acc: 0.8283\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 142us/step - loss: 0.1213 - acc: 0.8455\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 152us/step - loss: 0.1188 - acc: 0.8455\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.1164 - acc: 0.8670\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.1142 - acc: 0.8670\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.1121 - acc: 0.8670\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.1101 - acc: 0.8755\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.1082 - acc: 0.8712\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.1062 - acc: 0.8755\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.1043 - acc: 0.8755\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.1024 - acc: 0.8884\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.1006 - acc: 0.8884\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0988 - acc: 0.8927\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.0970 - acc: 0.8884\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0953 - acc: 0.8884\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0937 - acc: 0.8884\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0920 - acc: 0.8927\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0904 - acc: 0.8970\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 246us/step - loss: 0.0889 - acc: 0.9013\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0874 - acc: 0.8970\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0860 - acc: 0.8970\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0845 - acc: 0.8970\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0831 - acc: 0.9056\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0818 - acc: 0.9099\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0804 - acc: 0.9099\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.0791 - acc: 0.9099\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0779 - acc: 0.9056\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0766 - acc: 0.9099\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0754 - acc: 0.9142\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0741 - acc: 0.9099\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0729 - acc: 0.9099\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0717 - acc: 0.9056\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0705 - acc: 0.9013\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0693 - acc: 0.9056\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0681 - acc: 0.8970\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0670 - acc: 0.9013\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0659 - acc: 0.9013\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0648 - acc: 0.9056\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0637 - acc: 0.9056\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0626 - acc: 0.9099\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 234us/step - loss: 0.0615 - acc: 0.9056\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0605 - acc: 0.9013\n", "Epoch 47/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0623 - acc: 0.933 - 0s 187us/step - loss: 0.0594 - acc: 0.9013\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0584 - acc: 0.9013\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.0574 - acc: 0.9013\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.0564 - acc: 0.9013\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.0554 - acc: 0.9013\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 168us/step - loss: 0.0544 - acc: 0.9013\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.0534 - acc: 0.9013\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.0525 - acc: 0.9013\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0516 - acc: 0.9056\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0506 - acc: 0.9013\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0497 - acc: 0.9013\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0489 - acc: 0.9013\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0479 - acc: 0.9013\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0470 - acc: 0.9013\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0462 - acc: 0.9013\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 160us/step - loss: 0.0453 - acc: 0.9013\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0444 - acc: 0.9013\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 168us/step - loss: 0.0436 - acc: 0.9013\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0428 - acc: 0.9013\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0420 - acc: 0.9013\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0413 - acc: 0.9013\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0405 - acc: 0.9013\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 243us/step - loss: 0.0398 - acc: 0.9013\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0390 - acc: 0.9013\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0383 - acc: 0.9013\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0376 - acc: 0.9013\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0368 - acc: 0.9013\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0361 - acc: 0.9013\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0354 - acc: 0.9013\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0347 - acc: 0.9013\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0340 - acc: 0.9013\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0333 - acc: 0.9013\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0327 - acc: 0.9013\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0320 - acc: 0.9013\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 8ms/step - loss: 0.1467 - acc: 0.2403\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.1377 - acc: 0.5579\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 157us/step - loss: 0.1323 - acc: 0.6781\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 157us/step - loss: 0.1281 - acc: 0.7511\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 163us/step - loss: 0.1244 - acc: 0.7682\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.1215 - acc: 0.7940\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 179us/step - loss: 0.1189 - acc: 0.8155\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.1165 - acc: 0.8155\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.1143 - acc: 0.8369\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.1121 - acc: 0.8283\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.1101 - acc: 0.8283\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.1081 - acc: 0.8455\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.1061 - acc: 0.8412\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.1042 - acc: 0.8455\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.1024 - acc: 0.8498\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 180us/step - loss: 0.1006 - acc: 0.8455\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0988 - acc: 0.8498\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0971 - acc: 0.8498\n", "Epoch 19/80\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "233/233 [==============================] - 0s 191us/step - loss: 0.0955 - acc: 0.8455\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0938 - acc: 0.8498\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0922 - acc: 0.8498\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0906 - acc: 0.8541\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0891 - acc: 0.8584\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0876 - acc: 0.8584\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.0861 - acc: 0.8584\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0846 - acc: 0.8670\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0832 - acc: 0.8670\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0817 - acc: 0.8670\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0803 - acc: 0.8627\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 251us/step - loss: 0.0789 - acc: 0.8627\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 259us/step - loss: 0.0775 - acc: 0.8584\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 236us/step - loss: 0.0762 - acc: 0.8627\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0748 - acc: 0.8627\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0735 - acc: 0.8627\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.0722 - acc: 0.8670\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0709 - acc: 0.8670\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0697 - acc: 0.8670\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0685 - acc: 0.8627\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0673 - acc: 0.8584\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 251us/step - loss: 0.0661 - acc: 0.8670\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 261us/step - loss: 0.0649 - acc: 0.8670\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0638 - acc: 0.8670\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 233us/step - loss: 0.0627 - acc: 0.8627\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0616 - acc: 0.8670\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0605 - acc: 0.8627\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0594 - acc: 0.8670\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0584 - acc: 0.8670\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0573 - acc: 0.8712\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0563 - acc: 0.8670\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 233us/step - loss: 0.0552 - acc: 0.8712\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 253us/step - loss: 0.0542 - acc: 0.8670\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0533 - acc: 0.8755\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0523 - acc: 0.8670\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0513 - acc: 0.8712\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0504 - acc: 0.8712\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.0494 - acc: 0.8712\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0486 - acc: 0.8712\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0477 - acc: 0.8712\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0468 - acc: 0.8712\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.0459 - acc: 0.8712\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 153us/step - loss: 0.0450 - acc: 0.8712\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 158us/step - loss: 0.0441 - acc: 0.8755\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 252us/step - loss: 0.0433 - acc: 0.8755\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 239us/step - loss: 0.0425 - acc: 0.8755\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 257us/step - loss: 0.0417 - acc: 0.8755\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0409 - acc: 0.8755\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0401 - acc: 0.8712\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0393 - acc: 0.8755\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0385 - acc: 0.8755\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0377 - acc: 0.8712\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0370 - acc: 0.8755\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0363 - acc: 0.8755\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0356 - acc: 0.8755\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0348 - acc: 0.8755\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0341 - acc: 0.8755\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0335 - acc: 0.8712\n", "Epoch 77/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0320 - acc: 0.883 - 0s 191us/step - loss: 0.0328 - acc: 0.8755\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0321 - acc: 0.8755\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0315 - acc: 0.8798\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0308 - acc: 0.8755\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 9ms/step - loss: 0.1455 - acc: 0.2532\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.1370 - acc: 0.5193\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.1317 - acc: 0.6524\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 163us/step - loss: 0.1274 - acc: 0.7554\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.1241 - acc: 0.7854\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 162us/step - loss: 0.1212 - acc: 0.7940\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.1187 - acc: 0.8026\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.1163 - acc: 0.8283\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.1140 - acc: 0.8455\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.1118 - acc: 0.8498\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.1097 - acc: 0.8541\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.1077 - acc: 0.8541\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.1057 - acc: 0.8498\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.1039 - acc: 0.8498\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 180us/step - loss: 0.1020 - acc: 0.8541\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.1002 - acc: 0.8498\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.0984 - acc: 0.8498\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 167us/step - loss: 0.0966 - acc: 0.8455\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0949 - acc: 0.8541\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.0933 - acc: 0.8584\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0917 - acc: 0.8627\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0902 - acc: 0.8627\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0886 - acc: 0.8627\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0872 - acc: 0.8712\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0857 - acc: 0.8541\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.0843 - acc: 0.8670\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0830 - acc: 0.8927\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0816 - acc: 0.8927\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0803 - acc: 0.8927\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0791 - acc: 0.8927\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0778 - acc: 0.8927\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0766 - acc: 0.8970\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 241us/step - loss: 0.0753 - acc: 0.8970\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0741 - acc: 0.8970\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0729 - acc: 0.9013\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 178us/step - loss: 0.0717 - acc: 0.8884\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0706 - acc: 0.8970\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0694 - acc: 0.8970\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0683 - acc: 0.9013\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0672 - acc: 0.8927\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0661 - acc: 0.9013\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0650 - acc: 0.8970\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0639 - acc: 0.8970\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0628 - acc: 0.8970\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0617 - acc: 0.9056\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0606 - acc: 0.8970\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0596 - acc: 0.8970\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0585 - acc: 0.8970\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0575 - acc: 0.8970\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0565 - acc: 0.8970\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0556 - acc: 0.8970\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0546 - acc: 0.8927\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0537 - acc: 0.9013\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0527 - acc: 0.8970\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0518 - acc: 0.9099\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0509 - acc: 0.9013\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0500 - acc: 0.9099\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.0490 - acc: 0.9013\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0481 - acc: 0.9056\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0473 - acc: 0.8927\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0463 - acc: 0.9056\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0454 - acc: 0.9013\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0445 - acc: 0.9056\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0436 - acc: 0.9056\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0428 - acc: 0.9142\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0420 - acc: 0.9099\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0412 - acc: 0.9099\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 232us/step - loss: 0.0404 - acc: 0.9013\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0397 - acc: 0.9142\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0389 - acc: 0.9056\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0381 - acc: 0.9142\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0374 - acc: 0.9099\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0367 - acc: 0.9185\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0360 - acc: 0.9099\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0353 - acc: 0.9185\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0346 - acc: 0.9099\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0340 - acc: 0.9099\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0333 - acc: 0.9099\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0326 - acc: 0.9099\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0320 - acc: 0.9099\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 8ms/step - loss: 0.1457 - acc: 0.2661\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.1365 - acc: 0.6223\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.1314 - acc: 0.7425\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.1275 - acc: 0.7897\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.1241 - acc: 0.8369\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.1210 - acc: 0.8326\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.1183 - acc: 0.8326\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 283us/step - loss: 0.1160 - acc: 0.8412\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.1137 - acc: 0.8326\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 167us/step - loss: 0.1116 - acc: 0.8412\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 178us/step - loss: 0.1096 - acc: 0.8455\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 162us/step - loss: 0.1075 - acc: 0.8283\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 156us/step - loss: 0.1056 - acc: 0.8326\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 169us/step - loss: 0.1037 - acc: 0.8197\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 162us/step - loss: 0.1018 - acc: 0.8197\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.1001 - acc: 0.8283\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.0983 - acc: 0.8240\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0967 - acc: 0.8240\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0950 - acc: 0.8240\n", "Epoch 20/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0805 - acc: 0.850 - 0s 223us/step - loss: 0.0934 - acc: 0.8283\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0919 - acc: 0.8326\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 175us/step - loss: 0.0903 - acc: 0.8326\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0888 - acc: 0.8283\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0873 - acc: 0.8283\n", "Epoch 25/80\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "233/233 [==============================] - 0s 197us/step - loss: 0.0859 - acc: 0.8283\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0845 - acc: 0.8326\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0831 - acc: 0.8326\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 239us/step - loss: 0.0818 - acc: 0.8326\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0804 - acc: 0.8240\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0791 - acc: 0.8283\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0778 - acc: 0.8369\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0766 - acc: 0.8369\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0753 - acc: 0.8412\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0741 - acc: 0.8455\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0728 - acc: 0.8455\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0716 - acc: 0.8455\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0704 - acc: 0.8412\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0693 - acc: 0.8412\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0682 - acc: 0.8541\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0670 - acc: 0.8541\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0659 - acc: 0.8584\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0648 - acc: 0.8584\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0637 - acc: 0.8498\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0626 - acc: 0.8584\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0616 - acc: 0.8627\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0606 - acc: 0.8584\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0595 - acc: 0.8712\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0585 - acc: 0.8712\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0576 - acc: 0.8841\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0566 - acc: 0.8798\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0557 - acc: 0.8798\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0548 - acc: 0.9013\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.0539 - acc: 0.8927\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0529 - acc: 0.9185\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0520 - acc: 0.9185\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0511 - acc: 0.9185\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0502 - acc: 0.9185\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0493 - acc: 0.9185\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0484 - acc: 0.9227\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0475 - acc: 0.9142\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0465 - acc: 0.9185\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0457 - acc: 0.9142\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0448 - acc: 0.9142\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0440 - acc: 0.9056\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.0432 - acc: 0.9185\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0424 - acc: 0.9142\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0416 - acc: 0.9099\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0408 - acc: 0.9099\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0401 - acc: 0.9099\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0393 - acc: 0.9142\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0386 - acc: 0.9099\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0378 - acc: 0.9099\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0371 - acc: 0.9142\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0363 - acc: 0.9099\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0356 - acc: 0.9142\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0349 - acc: 0.9099\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0342 - acc: 0.9142\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0335 - acc: 0.9056\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0329 - acc: 0.9056\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0322 - acc: 0.9056\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 9ms/step - loss: 0.1453 - acc: 0.3176\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.1369 - acc: 0.5837\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.1317 - acc: 0.6867\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.1277 - acc: 0.7425\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.1245 - acc: 0.7725\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.1216 - acc: 0.8240\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.1189 - acc: 0.8541\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.1164 - acc: 0.8627\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 264us/step - loss: 0.1141 - acc: 0.8584\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.1119 - acc: 0.8627\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.1098 - acc: 0.8670\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.1078 - acc: 0.8712\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.1059 - acc: 0.8712\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.1040 - acc: 0.8670\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.1022 - acc: 0.8798\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.1004 - acc: 0.8755\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0986 - acc: 0.8884\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0969 - acc: 0.8884\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0952 - acc: 0.8884\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0936 - acc: 0.8884\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0920 - acc: 0.9013\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0904 - acc: 0.9056\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0888 - acc: 0.9142\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0872 - acc: 0.9227\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0857 - acc: 0.9227\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0843 - acc: 0.9270\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0828 - acc: 0.9313\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 168us/step - loss: 0.0814 - acc: 0.9313\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0800 - acc: 0.9356\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0786 - acc: 0.9399\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0773 - acc: 0.9399\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0760 - acc: 0.9399\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0747 - acc: 0.9399\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0734 - acc: 0.9356\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0722 - acc: 0.9356\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0710 - acc: 0.9313\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0698 - acc: 0.9313\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0686 - acc: 0.9313\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.0674 - acc: 0.9356\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0663 - acc: 0.9356\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0652 - acc: 0.9356\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 231us/step - loss: 0.0641 - acc: 0.9356\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0630 - acc: 0.9356\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0620 - acc: 0.9356\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0609 - acc: 0.9356\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0599 - acc: 0.9356\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.0589 - acc: 0.9313\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0579 - acc: 0.9313\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0569 - acc: 0.9356\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 179us/step - loss: 0.0559 - acc: 0.9356\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0549 - acc: 0.9356\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0540 - acc: 0.9356\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0531 - acc: 0.9356\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0521 - acc: 0.9313\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0512 - acc: 0.9313\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0503 - acc: 0.9313\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0494 - acc: 0.9313\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0485 - acc: 0.9313\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0477 - acc: 0.9313\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0468 - acc: 0.9313\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0459 - acc: 0.9313\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0450 - acc: 0.9313\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0442 - acc: 0.9270\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0434 - acc: 0.9313\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0426 - acc: 0.9313\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0418 - acc: 0.9270\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0410 - acc: 0.9313\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0403 - acc: 0.9270\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0395 - acc: 0.9313\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0387 - acc: 0.9270\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0380 - acc: 0.9270\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0372 - acc: 0.9270\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0365 - acc: 0.9270\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0358 - acc: 0.9270\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0351 - acc: 0.9313\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0344 - acc: 0.9313\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0337 - acc: 0.9313\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0331 - acc: 0.9313\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0324 - acc: 0.9313\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0317 - acc: 0.9313\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 9ms/step - loss: 0.1458 - acc: 0.3004\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.1371 - acc: 0.6524\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 164us/step - loss: 0.1320 - acc: 0.7339\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 175us/step - loss: 0.1278 - acc: 0.7511\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.1244 - acc: 0.7940\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.1215 - acc: 0.8326\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.1189 - acc: 0.8369\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.1164 - acc: 0.8283\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.1142 - acc: 0.8283\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 241us/step - loss: 0.1120 - acc: 0.8283\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.1100 - acc: 0.8326\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.1080 - acc: 0.8369\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.1061 - acc: 0.8455\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.1042 - acc: 0.8541\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.1023 - acc: 0.8498\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.1005 - acc: 0.8498\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0987 - acc: 0.8541\n", "Epoch 18/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0923 - acc: 0.866 - 0s 221us/step - loss: 0.0970 - acc: 0.8498\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0954 - acc: 0.8498\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0938 - acc: 0.8541\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0922 - acc: 0.8584\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.0906 - acc: 0.8627\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0891 - acc: 0.8627\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0876 - acc: 0.8755\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0862 - acc: 0.8798\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0847 - acc: 0.8798\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0833 - acc: 0.8798\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0818 - acc: 0.8798\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0805 - acc: 0.8798\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0791 - acc: 0.8841\n", "Epoch 31/80\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "233/233 [==============================] - 0s 193us/step - loss: 0.0778 - acc: 0.9142\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0765 - acc: 0.9227\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0752 - acc: 0.9227\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0739 - acc: 0.9227\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 179us/step - loss: 0.0727 - acc: 0.9227\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0715 - acc: 0.9227\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0703 - acc: 0.9227\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0691 - acc: 0.9185\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0679 - acc: 0.9185\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0667 - acc: 0.9227\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0656 - acc: 0.9270\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0644 - acc: 0.9227\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0633 - acc: 0.9270\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0622 - acc: 0.9227\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0611 - acc: 0.9270\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.0600 - acc: 0.9227\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0590 - acc: 0.9270\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0580 - acc: 0.9270\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0570 - acc: 0.9270\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0559 - acc: 0.9356\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0550 - acc: 0.9442\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0540 - acc: 0.9399\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0530 - acc: 0.9442\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0520 - acc: 0.9399\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0511 - acc: 0.9442\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0501 - acc: 0.9399\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0492 - acc: 0.9442\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0483 - acc: 0.9399\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0475 - acc: 0.9442\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0466 - acc: 0.9399\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0457 - acc: 0.9442\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0449 - acc: 0.9399\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0441 - acc: 0.9442\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0432 - acc: 0.9399\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0424 - acc: 0.9442\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0416 - acc: 0.9399\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0409 - acc: 0.9442\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0401 - acc: 0.9399\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0393 - acc: 0.9442\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0386 - acc: 0.9399\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0379 - acc: 0.9442\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0371 - acc: 0.9399\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0364 - acc: 0.9442\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0357 - acc: 0.9399\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0350 - acc: 0.9442\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0343 - acc: 0.9399\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0336 - acc: 0.9442\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0329 - acc: 0.9399\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 238us/step - loss: 0.0323 - acc: 0.9442\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.0316 - acc: 0.9399\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 9ms/step - loss: 0.1470 - acc: 0.2575\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.1377 - acc: 0.5966\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.1322 - acc: 0.6910\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.1282 - acc: 0.7682\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 155us/step - loss: 0.1249 - acc: 0.8197\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 160us/step - loss: 0.1219 - acc: 0.8627\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 157us/step - loss: 0.1193 - acc: 0.8798\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.1167 - acc: 0.8927\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.1144 - acc: 0.8927\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.1122 - acc: 0.8970\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 235us/step - loss: 0.1101 - acc: 0.8970\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.1081 - acc: 0.8970\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.1061 - acc: 0.9013\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.1042 - acc: 0.8970\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.1024 - acc: 0.8970\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.1006 - acc: 0.8927\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0989 - acc: 0.8970\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0972 - acc: 0.8970\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0955 - acc: 0.8927\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0938 - acc: 0.8970\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0922 - acc: 0.9013\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0907 - acc: 0.9013\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0891 - acc: 0.9056\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0877 - acc: 0.9056\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0862 - acc: 0.9099\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0848 - acc: 0.9099\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0834 - acc: 0.9142\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 237us/step - loss: 0.0821 - acc: 0.9142\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0807 - acc: 0.9227\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0794 - acc: 0.9185\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0781 - acc: 0.9185\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0768 - acc: 0.9185\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0756 - acc: 0.9185\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0743 - acc: 0.9185\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0731 - acc: 0.9185\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0718 - acc: 0.9185\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 231us/step - loss: 0.0706 - acc: 0.9142\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0695 - acc: 0.9185\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0683 - acc: 0.9185\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0671 - acc: 0.9185\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0660 - acc: 0.9185\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0649 - acc: 0.9227\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0638 - acc: 0.9227\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0627 - acc: 0.9227\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0616 - acc: 0.9270\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0606 - acc: 0.9270\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0595 - acc: 0.9227\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0585 - acc: 0.9270\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0574 - acc: 0.9227\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0564 - acc: 0.9227\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0554 - acc: 0.9270\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0544 - acc: 0.9227\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0534 - acc: 0.9270\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0525 - acc: 0.9356\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0516 - acc: 0.9270\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0507 - acc: 0.9270\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0498 - acc: 0.9313\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0488 - acc: 0.9270\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0479 - acc: 0.9313\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0469 - acc: 0.9313\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0460 - acc: 0.9356\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0452 - acc: 0.9313\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0444 - acc: 0.9356\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0435 - acc: 0.9313\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0427 - acc: 0.9356\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 239us/step - loss: 0.0419 - acc: 0.9313\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0411 - acc: 0.9356\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0404 - acc: 0.9313\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0396 - acc: 0.9313\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0388 - acc: 0.9313\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0381 - acc: 0.9313\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 178us/step - loss: 0.0374 - acc: 0.9313\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0366 - acc: 0.9313\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0359 - acc: 0.9313\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0351 - acc: 0.9313\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0344 - acc: 0.9313\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0337 - acc: 0.9313\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0330 - acc: 0.9313\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0323 - acc: 0.9313\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0316 - acc: 0.9313\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 9ms/step - loss: 0.1476 - acc: 0.1631\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.1383 - acc: 0.5708\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 166us/step - loss: 0.1327 - acc: 0.7468\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 173us/step - loss: 0.1285 - acc: 0.8069\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.1251 - acc: 0.8069\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.1220 - acc: 0.8240\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.1192 - acc: 0.8155\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.1167 - acc: 0.8240\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.1145 - acc: 0.8155\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.1123 - acc: 0.8197\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.1103 - acc: 0.8326\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.1083 - acc: 0.8412\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.1063 - acc: 0.8670\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.1043 - acc: 0.8712\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.1025 - acc: 0.8712\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.1007 - acc: 0.8712\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0989 - acc: 0.8712\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.0971 - acc: 0.8755\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 233us/step - loss: 0.0954 - acc: 0.8712\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0937 - acc: 0.8755\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0921 - acc: 0.8798\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0905 - acc: 0.8884\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0889 - acc: 0.8970\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0874 - acc: 0.8970\n", "Epoch 25/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0861 - acc: 0.850 - 0s 194us/step - loss: 0.0859 - acc: 0.8970\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0844 - acc: 0.8927\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0830 - acc: 0.8927\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0815 - acc: 0.8927\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0802 - acc: 0.8970\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0788 - acc: 0.8884\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0775 - acc: 0.9013\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0762 - acc: 0.8927\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0750 - acc: 0.9013\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0737 - acc: 0.8970\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0724 - acc: 0.9013\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0712 - acc: 0.8970\n", "Epoch 37/80\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "233/233 [==============================] - 0s 213us/step - loss: 0.0700 - acc: 0.9013\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0688 - acc: 0.8970\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0676 - acc: 0.9013\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0665 - acc: 0.8970\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0653 - acc: 0.9013\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0642 - acc: 0.8970\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0630 - acc: 0.9013\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0619 - acc: 0.8970\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0608 - acc: 0.8970\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0597 - acc: 0.9013\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0587 - acc: 0.9013\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0577 - acc: 0.8927\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0567 - acc: 0.8927\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0557 - acc: 0.8927\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0547 - acc: 0.8884\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0537 - acc: 0.8927\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0528 - acc: 0.8884\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0519 - acc: 0.8927\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0509 - acc: 0.8927\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0500 - acc: 0.8970\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0491 - acc: 0.8970\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0482 - acc: 0.8970\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0473 - acc: 0.8970\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0464 - acc: 0.8970\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0456 - acc: 0.8970\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0447 - acc: 0.8970\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0439 - acc: 0.8970\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 236us/step - loss: 0.0431 - acc: 0.8970\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0423 - acc: 0.8970\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0415 - acc: 0.8970\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0407 - acc: 0.9013\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0399 - acc: 0.9013\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0391 - acc: 0.9013\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0383 - acc: 0.9013\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0376 - acc: 0.9013\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0368 - acc: 0.9013\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0361 - acc: 0.8970\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0353 - acc: 0.8970\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0347 - acc: 0.8970\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0340 - acc: 0.8970\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0333 - acc: 0.9056\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0327 - acc: 0.9142\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0320 - acc: 0.9142\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.0314 - acc: 0.9142\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 10ms/step - loss: 0.1468 - acc: 0.2661\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 239us/step - loss: 0.1379 - acc: 0.6695\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 232us/step - loss: 0.1325 - acc: 0.7639\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.1284 - acc: 0.7854\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.1250 - acc: 0.8112\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.1221 - acc: 0.8112\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 265us/step - loss: 0.1193 - acc: 0.8369\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.1168 - acc: 0.8455\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.1144 - acc: 0.8541\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.1122 - acc: 0.8584\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.1101 - acc: 0.8498\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.1080 - acc: 0.8541\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.1061 - acc: 0.8498\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.1042 - acc: 0.8498\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.1023 - acc: 0.8498\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.1005 - acc: 0.8455\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0987 - acc: 0.8412\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0971 - acc: 0.8455\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0954 - acc: 0.8498\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0938 - acc: 0.8541\n", "Epoch 21/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0961 - acc: 0.866 - 0s 198us/step - loss: 0.0922 - acc: 0.8498\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0906 - acc: 0.8498\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0891 - acc: 0.8498\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0876 - acc: 0.8412\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0861 - acc: 0.8584\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0846 - acc: 0.8455\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0832 - acc: 0.8412\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0818 - acc: 0.8412\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0804 - acc: 0.8455\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0790 - acc: 0.8455\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0777 - acc: 0.8412\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0764 - acc: 0.8369\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 180us/step - loss: 0.0751 - acc: 0.8326\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0739 - acc: 0.8326\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0726 - acc: 0.8326\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 232us/step - loss: 0.0714 - acc: 0.8369\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0701 - acc: 0.8369\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.0689 - acc: 0.8369\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0677 - acc: 0.8369\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0666 - acc: 0.8326\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0654 - acc: 0.8326\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0642 - acc: 0.8326\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0631 - acc: 0.8283\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0620 - acc: 0.8326\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0609 - acc: 0.8369\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0598 - acc: 0.8369\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0588 - acc: 0.8541\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0578 - acc: 0.8627\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0567 - acc: 0.8627\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0556 - acc: 0.8627\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 166us/step - loss: 0.0546 - acc: 0.8627\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.0536 - acc: 0.8670\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0526 - acc: 0.8712\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 180us/step - loss: 0.0516 - acc: 0.8670\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0507 - acc: 0.8670\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0498 - acc: 0.8670\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0489 - acc: 0.8627\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0480 - acc: 0.8712\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.0471 - acc: 0.8627\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0462 - acc: 0.8712\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0453 - acc: 0.8712\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0444 - acc: 0.8712\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0436 - acc: 0.8670\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0427 - acc: 0.8712\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0419 - acc: 0.8670\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0412 - acc: 0.8670\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0404 - acc: 0.8670\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0396 - acc: 0.8670\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0389 - acc: 0.8670\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0381 - acc: 0.8670\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0374 - acc: 0.8627\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0367 - acc: 0.8670\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0360 - acc: 0.8627\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0353 - acc: 0.8670\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0346 - acc: 0.8627\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0339 - acc: 0.8712\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0333 - acc: 0.8755\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0326 - acc: 0.8755\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0320 - acc: 0.8712\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0313 - acc: 0.8755\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 9ms/step - loss: 0.1465 - acc: 0.2361\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 164us/step - loss: 0.1376 - acc: 0.6309\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 153us/step - loss: 0.1323 - acc: 0.7382\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 151us/step - loss: 0.1284 - acc: 0.7940\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 155us/step - loss: 0.1250 - acc: 0.8240\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 167us/step - loss: 0.1219 - acc: 0.8412\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 158us/step - loss: 0.1192 - acc: 0.8541\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.1167 - acc: 0.8541\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.1144 - acc: 0.8541\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.1122 - acc: 0.8498\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.1101 - acc: 0.8541\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.1080 - acc: 0.8627\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.1060 - acc: 0.8712\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 178us/step - loss: 0.1040 - acc: 0.8798\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.1021 - acc: 0.8798\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.1003 - acc: 0.8712\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0985 - acc: 0.8670\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0967 - acc: 0.8670\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.0950 - acc: 0.8712\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.0933 - acc: 0.8670\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0917 - acc: 0.8670\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0901 - acc: 0.8627\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0885 - acc: 0.8755\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0869 - acc: 0.8755\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0854 - acc: 0.8712\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0840 - acc: 0.9142\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0825 - acc: 0.9142\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0811 - acc: 0.9142\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0796 - acc: 0.9185\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0782 - acc: 0.9227\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.0768 - acc: 0.9099\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0755 - acc: 0.9185\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0742 - acc: 0.9185\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0730 - acc: 0.9185\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 232us/step - loss: 0.0717 - acc: 0.9185\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0705 - acc: 0.9142\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0692 - acc: 0.9142\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0681 - acc: 0.9185\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0669 - acc: 0.9185\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0658 - acc: 0.9185\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0647 - acc: 0.9185\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0635 - acc: 0.9227\n", "Epoch 43/80\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "233/233 [==============================] - 0s 250us/step - loss: 0.0625 - acc: 0.9227\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0614 - acc: 0.9227\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0603 - acc: 0.9227\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0593 - acc: 0.9185\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0582 - acc: 0.9185\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0572 - acc: 0.9227\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0562 - acc: 0.9185\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 232us/step - loss: 0.0552 - acc: 0.9227\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0542 - acc: 0.9185\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0533 - acc: 0.9227\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0523 - acc: 0.9227\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0514 - acc: 0.9185\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0505 - acc: 0.9185\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0496 - acc: 0.9227\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0487 - acc: 0.9185\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0478 - acc: 0.9185\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 255us/step - loss: 0.0470 - acc: 0.9185\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 281us/step - loss: 0.0461 - acc: 0.9227\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0452 - acc: 0.9185\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0444 - acc: 0.9185\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0436 - acc: 0.9185\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0428 - acc: 0.9185\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 237us/step - loss: 0.0420 - acc: 0.9185\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0412 - acc: 0.9185\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0404 - acc: 0.9185\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0396 - acc: 0.9185\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0388 - acc: 0.9185\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0381 - acc: 0.9185\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0373 - acc: 0.9185\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 247us/step - loss: 0.0366 - acc: 0.9185\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0359 - acc: 0.9185\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0351 - acc: 0.9185\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0344 - acc: 0.9185\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0337 - acc: 0.9185\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0331 - acc: 0.9185\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 241us/step - loss: 0.0324 - acc: 0.9185\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0317 - acc: 0.9185\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0311 - acc: 0.9227\n", "Epoch 1/80\n", "233/233 [==============================] - 3s 12ms/step - loss: 0.1460 - acc: 0.2618\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.1369 - acc: 0.5880\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.1316 - acc: 0.7296\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.1276 - acc: 0.7940\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.1242 - acc: 0.8112\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.1211 - acc: 0.8240\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.1184 - acc: 0.8412\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.1160 - acc: 0.8670\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 241us/step - loss: 0.1138 - acc: 0.8670\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.1117 - acc: 0.8627\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 252us/step - loss: 0.1097 - acc: 0.8627\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 239us/step - loss: 0.1077 - acc: 0.8627\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.1058 - acc: 0.8627\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.1039 - acc: 0.8627\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.1021 - acc: 0.8584\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.1003 - acc: 0.8670\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 241us/step - loss: 0.0986 - acc: 0.8627\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0969 - acc: 0.8627\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0952 - acc: 0.8670\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 247us/step - loss: 0.0936 - acc: 0.8712\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0920 - acc: 0.8670\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0904 - acc: 0.8670\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0888 - acc: 0.8670\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 232us/step - loss: 0.0873 - acc: 0.8670\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0859 - acc: 0.9099\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0844 - acc: 0.9185\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0830 - acc: 0.9142\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 245us/step - loss: 0.0817 - acc: 0.9099\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 249us/step - loss: 0.0803 - acc: 0.9142\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0789 - acc: 0.9142\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 243us/step - loss: 0.0776 - acc: 0.9142\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 245us/step - loss: 0.0762 - acc: 0.9142\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0749 - acc: 0.9185\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 248us/step - loss: 0.0737 - acc: 0.9099\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0724 - acc: 0.9142\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 237us/step - loss: 0.0711 - acc: 0.9056\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 259us/step - loss: 0.0699 - acc: 0.9099\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 251us/step - loss: 0.0688 - acc: 0.9056\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 271us/step - loss: 0.0676 - acc: 0.9142\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0664 - acc: 0.9099\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 234us/step - loss: 0.0653 - acc: 0.9185\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 269us/step - loss: 0.0642 - acc: 0.9185\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 262us/step - loss: 0.0631 - acc: 0.9185\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 249us/step - loss: 0.0620 - acc: 0.9099\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 239us/step - loss: 0.0609 - acc: 0.9185\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0598 - acc: 0.9099\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 245us/step - loss: 0.0588 - acc: 0.9185\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 232us/step - loss: 0.0577 - acc: 0.9099\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0567 - acc: 0.9227\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0557 - acc: 0.9099\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0547 - acc: 0.9142\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0537 - acc: 0.9099\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 240us/step - loss: 0.0527 - acc: 0.9185\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0518 - acc: 0.9142\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 231us/step - loss: 0.0509 - acc: 0.9142\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.0500 - acc: 0.9142\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 251us/step - loss: 0.0490 - acc: 0.9142\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0481 - acc: 0.9142\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0472 - acc: 0.9142\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0463 - acc: 0.9142\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 255us/step - loss: 0.0454 - acc: 0.9142\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0445 - acc: 0.9142\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0437 - acc: 0.9185\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 259us/step - loss: 0.0428 - acc: 0.9142\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0420 - acc: 0.9142\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 238us/step - loss: 0.0412 - acc: 0.9185\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 247us/step - loss: 0.0404 - acc: 0.9142\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0396 - acc: 0.9142\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0388 - acc: 0.9142\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0381 - acc: 0.9099\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0373 - acc: 0.9142\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0366 - acc: 0.9099\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0358 - acc: 0.9185\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0351 - acc: 0.9185\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 173us/step - loss: 0.0344 - acc: 0.9142\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0337 - acc: 0.9142\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0330 - acc: 0.9185\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.0323 - acc: 0.9185\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0317 - acc: 0.9185\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 237us/step - loss: 0.0310 - acc: 0.9142\n", "Epoch 1/80\n", "233/233 [==============================] - 3s 12ms/step - loss: 0.1465 - acc: 0.2790\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.1373 - acc: 0.6309\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.1317 - acc: 0.7511\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 175us/step - loss: 0.1275 - acc: 0.7940\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.1241 - acc: 0.8026\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.1212 - acc: 0.7983\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.1185 - acc: 0.7983\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.1160 - acc: 0.8026\n", "Epoch 9/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.1087 - acc: 0.883 - 0s 187us/step - loss: 0.1137 - acc: 0.8026\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.1115 - acc: 0.8155\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.1095 - acc: 0.8197\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.1075 - acc: 0.8155\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.1056 - acc: 0.8155\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.1038 - acc: 0.8155\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.1020 - acc: 0.8155\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.1002 - acc: 0.8155\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0985 - acc: 0.8197\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0968 - acc: 0.8326\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0951 - acc: 0.8455\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0935 - acc: 0.8584\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0919 - acc: 0.8584\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0904 - acc: 0.8584\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0889 - acc: 0.8627\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0873 - acc: 0.8627\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0859 - acc: 0.8670\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0844 - acc: 0.8627\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0830 - acc: 0.8670\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0816 - acc: 0.8712\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0803 - acc: 0.8712\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0789 - acc: 0.8712\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0776 - acc: 0.8884\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0763 - acc: 0.8884\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0750 - acc: 0.8884\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 180us/step - loss: 0.0738 - acc: 0.8927\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0725 - acc: 0.8970\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0713 - acc: 0.8970\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0702 - acc: 0.8970\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0690 - acc: 0.8970\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0678 - acc: 0.8970\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0666 - acc: 0.9013\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0655 - acc: 0.9013\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0644 - acc: 0.9056\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0633 - acc: 0.9056\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0622 - acc: 0.9142\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0611 - acc: 0.9142\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0600 - acc: 0.9099\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0590 - acc: 0.9142\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0580 - acc: 0.9142\n", "Epoch 49/80\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "233/233 [==============================] - 0s 221us/step - loss: 0.0570 - acc: 0.9142\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.0560 - acc: 0.9142\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0550 - acc: 0.9142\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0541 - acc: 0.9142\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0531 - acc: 0.9099\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0522 - acc: 0.9099\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.0513 - acc: 0.9099\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0504 - acc: 0.9142\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0495 - acc: 0.9142\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.0486 - acc: 0.9185\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0477 - acc: 0.9142\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0468 - acc: 0.9185\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0460 - acc: 0.9185\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.0451 - acc: 0.9185\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0443 - acc: 0.9185\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0435 - acc: 0.9185\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0427 - acc: 0.9185\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0419 - acc: 0.9185\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.0411 - acc: 0.9185\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0404 - acc: 0.9185\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0396 - acc: 0.9185\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0388 - acc: 0.9227\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0381 - acc: 0.9227\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0374 - acc: 0.9185\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0366 - acc: 0.9313\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0359 - acc: 0.9313\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0352 - acc: 0.9356\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0345 - acc: 0.9313\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 179us/step - loss: 0.0338 - acc: 0.9356\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0331 - acc: 0.9356\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0324 - acc: 0.9356\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0318 - acc: 0.9356\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 11ms/step - loss: 0.1473 - acc: 0.2747\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.1384 - acc: 0.6309\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 167us/step - loss: 0.1330 - acc: 0.7811\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.1289 - acc: 0.8412\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.1252 - acc: 0.8326\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.1221 - acc: 0.8326\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.1194 - acc: 0.8369\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 242us/step - loss: 0.1170 - acc: 0.8283\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.1148 - acc: 0.8326\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.1127 - acc: 0.8369\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.1107 - acc: 0.8412\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.1087 - acc: 0.8369\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.1068 - acc: 0.8455\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.1050 - acc: 0.8455\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 236us/step - loss: 0.1032 - acc: 0.8369\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.1014 - acc: 0.8369\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.0997 - acc: 0.8412\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0980 - acc: 0.8369\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0963 - acc: 0.8369\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0947 - acc: 0.8326\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0931 - acc: 0.8326\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0915 - acc: 0.8498\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0900 - acc: 0.8455\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0885 - acc: 0.8541\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0870 - acc: 0.8541\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0855 - acc: 0.8584\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.0841 - acc: 0.8584\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0826 - acc: 0.8541\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0812 - acc: 0.8541\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0799 - acc: 0.8584\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0785 - acc: 0.8541\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0772 - acc: 0.8712\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0759 - acc: 0.8712\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0746 - acc: 0.8712\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.0734 - acc: 0.8670\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0722 - acc: 0.8670\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0709 - acc: 0.8670\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0698 - acc: 0.8670\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0686 - acc: 0.8712\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0674 - acc: 0.8755\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0662 - acc: 0.8712\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0651 - acc: 0.8798\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0640 - acc: 0.8755\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0629 - acc: 0.8755\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0618 - acc: 0.8798\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0607 - acc: 0.8798\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0597 - acc: 0.8712\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0587 - acc: 0.8755\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.0577 - acc: 0.8755\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0566 - acc: 0.8670\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.0556 - acc: 0.9056\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0546 - acc: 0.9056\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0537 - acc: 0.9013\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0528 - acc: 0.9056\n", "Epoch 55/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0517 - acc: 0.950 - 0s 205us/step - loss: 0.0518 - acc: 0.9013\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0509 - acc: 0.9056\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0500 - acc: 0.9013\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0491 - acc: 0.9056\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0482 - acc: 0.9013\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0473 - acc: 0.9056\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0465 - acc: 0.9013\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0457 - acc: 0.9013\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0448 - acc: 0.8970\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0440 - acc: 0.9013\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0432 - acc: 0.8970\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0424 - acc: 0.9013\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0416 - acc: 0.8970\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 242us/step - loss: 0.0408 - acc: 0.8970\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0400 - acc: 0.8927\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0392 - acc: 0.8970\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0384 - acc: 0.8927\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0377 - acc: 0.8970\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0369 - acc: 0.8927\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0362 - acc: 0.8970\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0355 - acc: 0.8927\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0348 - acc: 0.8927\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.0342 - acc: 0.8884\n", "Epoch 78/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0334 - acc: 0.900 - 0s 223us/step - loss: 0.0335 - acc: 0.8884\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 238us/step - loss: 0.0329 - acc: 0.8970\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0322 - acc: 0.8884\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 10ms/step - loss: 0.1455 - acc: 0.2961\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.1365 - acc: 0.6867\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.1314 - acc: 0.8069\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.1275 - acc: 0.8283\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.1243 - acc: 0.8455\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.1216 - acc: 0.8455\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.1191 - acc: 0.8455\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.1167 - acc: 0.8455\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.1144 - acc: 0.8584\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 173us/step - loss: 0.1121 - acc: 0.8798\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.1100 - acc: 0.8798\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.1080 - acc: 0.8927\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.1061 - acc: 0.8884\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.1042 - acc: 0.8927\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.1024 - acc: 0.9013\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.1006 - acc: 0.8970\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0989 - acc: 0.8970\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0972 - acc: 0.8970\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0956 - acc: 0.8970\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0940 - acc: 0.9013\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0924 - acc: 0.9013\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0909 - acc: 0.9056\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0893 - acc: 0.9099\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0879 - acc: 0.9185\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0864 - acc: 0.9185\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0850 - acc: 0.9185\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 237us/step - loss: 0.0835 - acc: 0.9099\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0822 - acc: 0.9099\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0808 - acc: 0.9142\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0795 - acc: 0.9142\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.0782 - acc: 0.9142\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0769 - acc: 0.9142\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0756 - acc: 0.9185\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0744 - acc: 0.9142\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0731 - acc: 0.9185\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0719 - acc: 0.9142\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0707 - acc: 0.9142\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0695 - acc: 0.9142\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0684 - acc: 0.9142\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0672 - acc: 0.9142\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0661 - acc: 0.9142\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0650 - acc: 0.9142\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.0639 - acc: 0.9142\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0628 - acc: 0.9185\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0617 - acc: 0.9185\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0607 - acc: 0.9185\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.0597 - acc: 0.9185\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0587 - acc: 0.9185\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0577 - acc: 0.9185\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0568 - acc: 0.9227\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0558 - acc: 0.9185\n", "Epoch 52/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0518 - acc: 0.900 - 0s 198us/step - loss: 0.0548 - acc: 0.9185\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0539 - acc: 0.9185\n", "Epoch 54/80\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "233/233 [==============================] - 0s 202us/step - loss: 0.0529 - acc: 0.9185\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0520 - acc: 0.9185\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0511 - acc: 0.9227\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0502 - acc: 0.9185\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 238us/step - loss: 0.0493 - acc: 0.9227\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0484 - acc: 0.9185\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0475 - acc: 0.9227\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0467 - acc: 0.9185\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0458 - acc: 0.9185\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0450 - acc: 0.9227\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0442 - acc: 0.9185\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0434 - acc: 0.9227\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0426 - acc: 0.9227\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0418 - acc: 0.9227\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0410 - acc: 0.9227\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.0403 - acc: 0.9185\n", "Epoch 70/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0394 - acc: 0.950 - 0s 182us/step - loss: 0.0394 - acc: 0.9227\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0387 - acc: 0.9185\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0379 - acc: 0.9227\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.0372 - acc: 0.9227\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0365 - acc: 0.9227\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0358 - acc: 0.9227\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0351 - acc: 0.9227\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0344 - acc: 0.9185\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0337 - acc: 0.9227\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0331 - acc: 0.9185\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.0324 - acc: 0.9227\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 10ms/step - loss: 0.1466 - acc: 0.2103\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.1372 - acc: 0.6395\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.1316 - acc: 0.7639\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.1274 - acc: 0.8155\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.1239 - acc: 0.8541\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.1208 - acc: 0.8670\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.1181 - acc: 0.8627\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.1157 - acc: 0.8670\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.1134 - acc: 0.8755\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.1112 - acc: 0.8841\n", "Epoch 11/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.1153 - acc: 0.900 - 0s 178us/step - loss: 0.1090 - acc: 0.8841\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.1070 - acc: 0.8927\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.1050 - acc: 0.8970\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.1031 - acc: 0.8970\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.1013 - acc: 0.8970\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0996 - acc: 0.9013\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 237us/step - loss: 0.0979 - acc: 0.9013\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0962 - acc: 0.9013\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0946 - acc: 0.9056\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0930 - acc: 0.9013\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0915 - acc: 0.9013\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0900 - acc: 0.9056\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0885 - acc: 0.9099\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0870 - acc: 0.9185\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0856 - acc: 0.9185\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0841 - acc: 0.9185\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0827 - acc: 0.9185\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0813 - acc: 0.9227\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0800 - acc: 0.9227\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0786 - acc: 0.9313\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0773 - acc: 0.9270\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0760 - acc: 0.9270\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0747 - acc: 0.9270\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0734 - acc: 0.9227\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0722 - acc: 0.9185\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0710 - acc: 0.9227\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 231us/step - loss: 0.0698 - acc: 0.9185\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0686 - acc: 0.9227\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0675 - acc: 0.9227\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0663 - acc: 0.9270\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0652 - acc: 0.9227\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0642 - acc: 0.9270\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0631 - acc: 0.9227\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0620 - acc: 0.9313\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0610 - acc: 0.9227\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0600 - acc: 0.9270\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 234us/step - loss: 0.0589 - acc: 0.9227\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0580 - acc: 0.9313\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0570 - acc: 0.9270\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0560 - acc: 0.9270\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0550 - acc: 0.9270\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0541 - acc: 0.9313\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0532 - acc: 0.9270\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0523 - acc: 0.9313\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0514 - acc: 0.9313\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0505 - acc: 0.9270\n", "Epoch 57/80\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "233/233 [==============================] - 0s 222us/step - loss: 0.0496 - acc: 0.9227\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0487 - acc: 0.9227\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0478 - acc: 0.9227\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0470 - acc: 0.9227\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0461 - acc: 0.9227\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0452 - acc: 0.9227\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0444 - acc: 0.9227\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0435 - acc: 0.9227\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0426 - acc: 0.9227\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 237us/step - loss: 0.0417 - acc: 0.9227\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0408 - acc: 0.9227\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0401 - acc: 0.9227\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0393 - acc: 0.9227\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0385 - acc: 0.9227\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0377 - acc: 0.9227\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0370 - acc: 0.9227\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0363 - acc: 0.9227\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0356 - acc: 0.9270\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0349 - acc: 0.9227\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0342 - acc: 0.9270\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0335 - acc: 0.9227\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0328 - acc: 0.9270\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0322 - acc: 0.9227\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 165us/step - loss: 0.0315 - acc: 0.9270\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 10ms/step - loss: 0.1463 - acc: 0.2275\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 241us/step - loss: 0.1377 - acc: 0.5708\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 231us/step - loss: 0.1327 - acc: 0.7124\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.1287 - acc: 0.7897\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.1252 - acc: 0.8112\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.1220 - acc: 0.8240\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 245us/step - loss: 0.1192 - acc: 0.8326\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.1167 - acc: 0.8369\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.1142 - acc: 0.8412\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.1118 - acc: 0.8455\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.1095 - acc: 0.8584\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.1073 - acc: 0.8970\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.1053 - acc: 0.8927\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.1034 - acc: 0.8884\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.1015 - acc: 0.8970\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0998 - acc: 0.8970\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0980 - acc: 0.8927\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0963 - acc: 0.8841\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0947 - acc: 0.8927\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0930 - acc: 0.8884\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0914 - acc: 0.8841\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0899 - acc: 0.8884\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0884 - acc: 0.8884\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0869 - acc: 0.8927\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 234us/step - loss: 0.0854 - acc: 0.9056\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0839 - acc: 0.9099\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0825 - acc: 0.9013\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0810 - acc: 0.9013\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0796 - acc: 0.9099\n", "Epoch 30/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0790 - acc: 0.916 - 0s 206us/step - loss: 0.0782 - acc: 0.9013\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0768 - acc: 0.9099\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 253us/step - loss: 0.0755 - acc: 0.9099\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0742 - acc: 0.9056\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0729 - acc: 0.9099\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0716 - acc: 0.9099\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0704 - acc: 0.9099\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0691 - acc: 0.9099\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.0679 - acc: 0.9142\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.0667 - acc: 0.9142\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.0655 - acc: 0.9227\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0644 - acc: 0.9270\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0633 - acc: 0.9227\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0621 - acc: 0.9227\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 254us/step - loss: 0.0610 - acc: 0.9270\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0599 - acc: 0.9270\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0588 - acc: 0.9270\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0578 - acc: 0.9227\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0567 - acc: 0.9227\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0557 - acc: 0.9313\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0547 - acc: 0.9313\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0537 - acc: 0.9270\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0528 - acc: 0.9313\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0518 - acc: 0.9313\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0509 - acc: 0.9270\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0500 - acc: 0.9227\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0491 - acc: 0.9270\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0482 - acc: 0.9270\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0473 - acc: 0.9270\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0465 - acc: 0.9313\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0456 - acc: 0.9313\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0448 - acc: 0.9356\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0440 - acc: 0.9313\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 232us/step - loss: 0.0431 - acc: 0.9356\n", "Epoch 64/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0403 - acc: 0.950 - 0s 212us/step - loss: 0.0423 - acc: 0.9313\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0415 - acc: 0.9356\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0407 - acc: 0.9313\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0399 - acc: 0.9356\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0391 - acc: 0.9313\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0383 - acc: 0.9356\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0376 - acc: 0.9313\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0368 - acc: 0.9356\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0361 - acc: 0.9313\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 240us/step - loss: 0.0354 - acc: 0.9313\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0347 - acc: 0.9313\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0340 - acc: 0.9356\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0333 - acc: 0.9270\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0326 - acc: 0.9313\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0320 - acc: 0.9270\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0313 - acc: 0.9313\n", "Epoch 80/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0369 - acc: 0.916 - 0s 226us/step - loss: 0.0307 - acc: 0.9270\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 10ms/step - loss: 0.1466 - acc: 0.2446\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 167us/step - loss: 0.1377 - acc: 0.6309\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.1325 - acc: 0.7339\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.1285 - acc: 0.7682\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.1251 - acc: 0.8069\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.1220 - acc: 0.8240\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.1194 - acc: 0.8412\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 237us/step - loss: 0.1170 - acc: 0.8455\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.1147 - acc: 0.8455\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.1126 - acc: 0.8455\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.1105 - acc: 0.8455\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.1084 - acc: 0.8498\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.1065 - acc: 0.8498\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.1047 - acc: 0.8498\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.1028 - acc: 0.8455\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.1010 - acc: 0.8455\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0992 - acc: 0.8541\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 235us/step - loss: 0.0974 - acc: 0.8627\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0958 - acc: 0.8627\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0941 - acc: 0.8627\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0925 - acc: 0.8670\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0909 - acc: 0.8755\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0894 - acc: 0.8712\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 232us/step - loss: 0.0879 - acc: 0.8627\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0864 - acc: 0.8798\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0849 - acc: 0.8755\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0835 - acc: 0.8755\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0820 - acc: 0.8712\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0806 - acc: 0.8712\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0792 - acc: 0.8755\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 243us/step - loss: 0.0779 - acc: 0.8712\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 239us/step - loss: 0.0766 - acc: 0.8755\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0753 - acc: 0.8798\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.0740 - acc: 0.8755\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0728 - acc: 0.8798\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0716 - acc: 0.8755\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0704 - acc: 0.8798\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0692 - acc: 0.8755\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0681 - acc: 0.8798\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0669 - acc: 0.8755\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0658 - acc: 0.8798\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 253us/step - loss: 0.0647 - acc: 0.8798\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0636 - acc: 0.8841\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0625 - acc: 0.8798\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0615 - acc: 0.8841\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0604 - acc: 0.8798\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0594 - acc: 0.8884\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0584 - acc: 0.8841\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0574 - acc: 0.8884\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 244us/step - loss: 0.0564 - acc: 0.8927\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0554 - acc: 0.8970\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0544 - acc: 0.8927\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0534 - acc: 0.9013\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0524 - acc: 0.8927\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0514 - acc: 0.9013\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0505 - acc: 0.8927\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0496 - acc: 0.9013\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0487 - acc: 0.8927\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.0478 - acc: 0.8970\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0470 - acc: 0.9013\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0461 - acc: 0.8970\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0452 - acc: 0.9013\n", "Epoch 63/80\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "233/233 [==============================] - 0s 215us/step - loss: 0.0444 - acc: 0.9013\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0436 - acc: 0.9227\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0427 - acc: 0.9485\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 246us/step - loss: 0.0419 - acc: 0.9442\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0412 - acc: 0.9485\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0404 - acc: 0.9442\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0396 - acc: 0.9485\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0389 - acc: 0.9442\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0381 - acc: 0.9442\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0374 - acc: 0.9442\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0366 - acc: 0.9399\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0360 - acc: 0.9442\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0353 - acc: 0.9442\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0346 - acc: 0.9442\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.0339 - acc: 0.9442\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0333 - acc: 0.9485\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0326 - acc: 0.9442\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0319 - acc: 0.9442\n", "Epoch 1/80\n", "233/233 [==============================] - 3s 11ms/step - loss: 0.1456 - acc: 0.2489\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.1370 - acc: 0.5622\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.1319 - acc: 0.6910\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 173us/step - loss: 0.1278 - acc: 0.7296\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 167us/step - loss: 0.1244 - acc: 0.7768\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 234us/step - loss: 0.1215 - acc: 0.8283\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.1189 - acc: 0.8412\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.1164 - acc: 0.8627\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 240us/step - loss: 0.1141 - acc: 0.8798\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.1119 - acc: 0.8841\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.1098 - acc: 0.8755\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.1077 - acc: 0.8798\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.1057 - acc: 0.8755\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.1038 - acc: 0.8798\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.1020 - acc: 0.8670\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.1002 - acc: 0.8755\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0985 - acc: 0.8755\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0967 - acc: 0.8712\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0950 - acc: 0.8670\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0933 - acc: 0.8712\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0917 - acc: 0.8712\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0901 - acc: 0.8755\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0885 - acc: 0.8798\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0870 - acc: 0.8798\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0855 - acc: 0.8841\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0840 - acc: 0.8841\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0826 - acc: 0.8841\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 233us/step - loss: 0.0812 - acc: 0.8884\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.0799 - acc: 0.8927\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0786 - acc: 0.8970\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0773 - acc: 0.8927\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0760 - acc: 0.8970\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0747 - acc: 0.8927\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0735 - acc: 0.8927\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 234us/step - loss: 0.0723 - acc: 0.9013\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0711 - acc: 0.9013\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0699 - acc: 0.9013\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0688 - acc: 0.9099\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0676 - acc: 0.9142\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0664 - acc: 0.9142\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0653 - acc: 0.9142\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0642 - acc: 0.9142\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0632 - acc: 0.9142\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0621 - acc: 0.9142\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0610 - acc: 0.9142\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 234us/step - loss: 0.0600 - acc: 0.9099\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0589 - acc: 0.9142\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0579 - acc: 0.9099\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0569 - acc: 0.9142\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0559 - acc: 0.9099\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0550 - acc: 0.9099\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0540 - acc: 0.9099\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 235us/step - loss: 0.0530 - acc: 0.9227\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0521 - acc: 0.9185\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 251us/step - loss: 0.0512 - acc: 0.9313\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0502 - acc: 0.9313\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0493 - acc: 0.9356\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 232us/step - loss: 0.0484 - acc: 0.9313\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0475 - acc: 0.9356\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0467 - acc: 0.9356\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0458 - acc: 0.9356\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0450 - acc: 0.9356\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0441 - acc: 0.9356\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 244us/step - loss: 0.0433 - acc: 0.9313\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0425 - acc: 0.9313\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0417 - acc: 0.9313\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0410 - acc: 0.9313\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0402 - acc: 0.9313\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0395 - acc: 0.9313\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0387 - acc: 0.9313\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0380 - acc: 0.9313\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 236us/step - loss: 0.0372 - acc: 0.9313\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0366 - acc: 0.9313\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0359 - acc: 0.9313\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0352 - acc: 0.9313\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0345 - acc: 0.9313\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0339 - acc: 0.9356\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0332 - acc: 0.9356\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0325 - acc: 0.9356\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 246us/step - loss: 0.0319 - acc: 0.9313\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 10ms/step - loss: 0.1456 - acc: 0.3090\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 156us/step - loss: 0.1369 - acc: 0.6137\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 155us/step - loss: 0.1319 - acc: 0.7082\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 157us/step - loss: 0.1280 - acc: 0.7511\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.1247 - acc: 0.7811\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 231us/step - loss: 0.1218 - acc: 0.7940\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.1192 - acc: 0.8069\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.1167 - acc: 0.8155\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.1144 - acc: 0.8369\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 260us/step - loss: 0.1122 - acc: 0.8412\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.1101 - acc: 0.8584\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.1081 - acc: 0.8841\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.1061 - acc: 0.9056\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.1043 - acc: 0.8970\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.1025 - acc: 0.8970\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 236us/step - loss: 0.1007 - acc: 0.8970\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.0990 - acc: 0.9013\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 253us/step - loss: 0.0974 - acc: 0.9142\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0957 - acc: 0.9099\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0941 - acc: 0.9099\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0925 - acc: 0.9099\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0909 - acc: 0.9099\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0893 - acc: 0.9056\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0878 - acc: 0.9099\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 248us/step - loss: 0.0864 - acc: 0.9099\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 236us/step - loss: 0.0849 - acc: 0.9099\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0835 - acc: 0.9099\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0821 - acc: 0.9099\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0808 - acc: 0.9056\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0794 - acc: 0.9056\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0781 - acc: 0.9056\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0768 - acc: 0.9013\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0755 - acc: 0.9013\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0742 - acc: 0.9013\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0729 - acc: 0.9056\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0717 - acc: 0.9056\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0705 - acc: 0.9056\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0693 - acc: 0.9056\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0681 - acc: 0.9013\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0669 - acc: 0.9056\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0658 - acc: 0.9099\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0647 - acc: 0.9056\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0637 - acc: 0.9142\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0626 - acc: 0.9142\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0615 - acc: 0.9142\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0605 - acc: 0.9142\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0595 - acc: 0.9142\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0584 - acc: 0.9142\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0573 - acc: 0.9185\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0564 - acc: 0.9185\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 237us/step - loss: 0.0554 - acc: 0.9185\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0544 - acc: 0.9185\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0535 - acc: 0.9185\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0526 - acc: 0.9185\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0516 - acc: 0.9185\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0507 - acc: 0.9185\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0498 - acc: 0.9185\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0489 - acc: 0.9185\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 237us/step - loss: 0.0480 - acc: 0.9185\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 247us/step - loss: 0.0471 - acc: 0.9185\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 235us/step - loss: 0.0463 - acc: 0.9185\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0454 - acc: 0.9185\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0446 - acc: 0.9185\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0438 - acc: 0.9185\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0430 - acc: 0.9185\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0422 - acc: 0.9227\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0414 - acc: 0.9313\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 238us/step - loss: 0.0406 - acc: 0.9313\n", "Epoch 69/80\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "233/233 [==============================] - 0s 207us/step - loss: 0.0398 - acc: 0.9313\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0390 - acc: 0.9356\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0383 - acc: 0.9356\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0375 - acc: 0.9356\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0367 - acc: 0.9313\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0360 - acc: 0.9313\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0353 - acc: 0.9313\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0346 - acc: 0.9313\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 243us/step - loss: 0.0339 - acc: 0.9313\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 243us/step - loss: 0.0333 - acc: 0.9313\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0326 - acc: 0.9313\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0320 - acc: 0.9313\n", "Epoch 1/80\n", "233/233 [==============================] - 3s 14ms/step - loss: 0.1468 - acc: 0.2318\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.1375 - acc: 0.6137\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 255us/step - loss: 0.1318 - acc: 0.7468\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.1276 - acc: 0.7682\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.1242 - acc: 0.7768\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.1213 - acc: 0.7983\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.1187 - acc: 0.8069\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 249us/step - loss: 0.1164 - acc: 0.8197\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.1142 - acc: 0.8283\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.1121 - acc: 0.8326\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.1101 - acc: 0.8326\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.1081 - acc: 0.8369\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.1062 - acc: 0.8283\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 234us/step - loss: 0.1044 - acc: 0.8369\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.1026 - acc: 0.8283\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 239us/step - loss: 0.1009 - acc: 0.8412\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0992 - acc: 0.8369\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0975 - acc: 0.8412\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0959 - acc: 0.8412\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0943 - acc: 0.8412\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0927 - acc: 0.8369\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 241us/step - loss: 0.0912 - acc: 0.8326\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0897 - acc: 0.8369\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0882 - acc: 0.8412\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0867 - acc: 0.8412\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0853 - acc: 0.8498\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0839 - acc: 0.8455\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0825 - acc: 0.8670\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0811 - acc: 0.8712\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0797 - acc: 0.8712\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0784 - acc: 0.8712\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0771 - acc: 0.8670\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0758 - acc: 0.8712\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0745 - acc: 0.8712\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 232us/step - loss: 0.0733 - acc: 0.8712\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 238us/step - loss: 0.0721 - acc: 0.8670\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0709 - acc: 0.8712\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0697 - acc: 0.8670\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0685 - acc: 0.8670\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0673 - acc: 0.8670\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0662 - acc: 0.8670\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 241us/step - loss: 0.0651 - acc: 0.8670\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0639 - acc: 0.8712\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0628 - acc: 0.8712\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0617 - acc: 0.8712\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0606 - acc: 0.8712\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0595 - acc: 0.8755\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0585 - acc: 0.8755\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.0575 - acc: 0.8755\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0565 - acc: 0.8755\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 224us/step - loss: 0.0555 - acc: 0.8755\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 232us/step - loss: 0.0545 - acc: 0.8755\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0536 - acc: 0.8712\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0526 - acc: 0.8755\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 234us/step - loss: 0.0516 - acc: 0.8798\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0507 - acc: 0.8798\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0497 - acc: 0.8798\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0488 - acc: 0.8841\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.0479 - acc: 0.8755\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0470 - acc: 0.8841\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0462 - acc: 0.8798\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 235us/step - loss: 0.0453 - acc: 0.9099\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 237us/step - loss: 0.0445 - acc: 0.8927\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0436 - acc: 0.9227\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0428 - acc: 0.9185\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0420 - acc: 0.9270\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0413 - acc: 0.9313\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 238us/step - loss: 0.0405 - acc: 0.9356\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0397 - acc: 0.9313\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0390 - acc: 0.9399\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0383 - acc: 0.9356\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0375 - acc: 0.9442\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 226us/step - loss: 0.0368 - acc: 0.9399\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0361 - acc: 0.9442\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0354 - acc: 0.9442\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0347 - acc: 0.9399\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 232us/step - loss: 0.0341 - acc: 0.9442\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.0334 - acc: 0.9442\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0327 - acc: 0.9442\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0321 - acc: 0.9442\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 11ms/step - loss: 0.1457 - acc: 0.2618\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.1370 - acc: 0.6052\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.1320 - acc: 0.6910\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.1281 - acc: 0.7639\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.1246 - acc: 0.7940\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.1216 - acc: 0.8026\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.1189 - acc: 0.8197\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.1164 - acc: 0.8240\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.1141 - acc: 0.8412\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.1119 - acc: 0.8455\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.1099 - acc: 0.8326\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.1079 - acc: 0.8326\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.1060 - acc: 0.8369\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.1041 - acc: 0.8369\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.1023 - acc: 0.8369\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.1006 - acc: 0.8326\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0988 - acc: 0.8283\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0971 - acc: 0.8240\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0954 - acc: 0.8240\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0938 - acc: 0.8240\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0922 - acc: 0.8283\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0907 - acc: 0.8326\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0892 - acc: 0.8369\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 243us/step - loss: 0.0877 - acc: 0.8369\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0862 - acc: 0.8412\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0847 - acc: 0.8455\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0833 - acc: 0.8455\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0818 - acc: 0.8455\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0805 - acc: 0.8455\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0791 - acc: 0.8455\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 235us/step - loss: 0.0777 - acc: 0.8498\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0763 - acc: 0.8584\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0750 - acc: 0.8541\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 264us/step - loss: 0.0737 - acc: 0.8584\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0724 - acc: 0.8584\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0711 - acc: 0.8627\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0699 - acc: 0.8584\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0687 - acc: 0.8670\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0676 - acc: 0.8541\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0664 - acc: 0.8541\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0653 - acc: 0.8584\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0641 - acc: 0.8584\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0630 - acc: 0.8584\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0619 - acc: 0.8670\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0608 - acc: 0.8670\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0598 - acc: 0.8670\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0587 - acc: 0.8670\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0578 - acc: 0.8627\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 241us/step - loss: 0.0567 - acc: 0.9056\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0557 - acc: 0.9013\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0547 - acc: 0.9099\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0537 - acc: 0.9056\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.0527 - acc: 0.9056\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 277us/step - loss: 0.0517 - acc: 0.9013\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 1ms/step - loss: 0.0507 - acc: 0.9142\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 442us/step - loss: 0.0497 - acc: 0.9056\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 389us/step - loss: 0.0488 - acc: 0.9227\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 262us/step - loss: 0.0479 - acc: 0.9227\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 247us/step - loss: 0.0470 - acc: 0.9227\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 657us/step - loss: 0.0461 - acc: 0.9185\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 296us/step - loss: 0.0453 - acc: 0.9185\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 306us/step - loss: 0.0444 - acc: 0.9227\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 403us/step - loss: 0.0436 - acc: 0.9227\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 257us/step - loss: 0.0428 - acc: 0.9227\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0420 - acc: 0.9227\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0412 - acc: 0.9227\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 214us/step - loss: 0.0404 - acc: 0.9185\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 316us/step - loss: 0.0396 - acc: 0.9227\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0388 - acc: 0.9185\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.0380 - acc: 0.9185\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 179us/step - loss: 0.0373 - acc: 0.9185\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 168us/step - loss: 0.0366 - acc: 0.9185\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.0358 - acc: 0.9185\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 163us/step - loss: 0.0351 - acc: 0.9056\n", "Epoch 75/80\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "233/233 [==============================] - 0s 184us/step - loss: 0.0344 - acc: 0.9227\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 178us/step - loss: 0.0337 - acc: 0.9185\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 172us/step - loss: 0.0330 - acc: 0.9185\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 169us/step - loss: 0.0323 - acc: 0.9227\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0317 - acc: 0.9227\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0310 - acc: 0.9142\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 10ms/step - loss: 0.1457 - acc: 0.2918\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 144us/step - loss: 0.1370 - acc: 0.5751\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 154us/step - loss: 0.1318 - acc: 0.6910\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 152us/step - loss: 0.1278 - acc: 0.7554\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 159us/step - loss: 0.1244 - acc: 0.7854\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 158us/step - loss: 0.1216 - acc: 0.8112\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 165us/step - loss: 0.1191 - acc: 0.8283\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 159us/step - loss: 0.1166 - acc: 0.8283\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 164us/step - loss: 0.1143 - acc: 0.8240\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 172us/step - loss: 0.1121 - acc: 0.8240\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 163us/step - loss: 0.1100 - acc: 0.8326\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 157us/step - loss: 0.1080 - acc: 0.8412\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 163us/step - loss: 0.1060 - acc: 0.8412\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 166us/step - loss: 0.1041 - acc: 0.8369\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 163us/step - loss: 0.1022 - acc: 0.8326\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 165us/step - loss: 0.1004 - acc: 0.8283\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.0986 - acc: 0.8240\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 150us/step - loss: 0.0969 - acc: 0.8197\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0952 - acc: 0.8240\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0936 - acc: 0.8240\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0919 - acc: 0.8369\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0903 - acc: 0.8369\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 231us/step - loss: 0.0887 - acc: 0.8369\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0872 - acc: 0.8369\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0857 - acc: 0.8455\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0843 - acc: 0.8455\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0828 - acc: 0.8455\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0814 - acc: 0.8455\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0801 - acc: 0.8455\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0787 - acc: 0.8455\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0774 - acc: 0.8455\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0761 - acc: 0.8455\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0749 - acc: 0.8455\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0736 - acc: 0.8455\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0724 - acc: 0.8455\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.0712 - acc: 0.8455\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0700 - acc: 0.8541\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 185us/step - loss: 0.0688 - acc: 0.8670\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.0677 - acc: 0.8670\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 155us/step - loss: 0.0665 - acc: 0.8798\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 156us/step - loss: 0.0654 - acc: 0.9099\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 159us/step - loss: 0.0642 - acc: 0.9013\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 162us/step - loss: 0.0630 - acc: 0.9099\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 158us/step - loss: 0.0619 - acc: 0.9099\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 166us/step - loss: 0.0608 - acc: 0.9099\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 173us/step - loss: 0.0597 - acc: 0.9099\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 154us/step - loss: 0.0586 - acc: 0.9099\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0576 - acc: 0.9099\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0565 - acc: 0.9099\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 232us/step - loss: 0.0555 - acc: 0.9099\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0545 - acc: 0.9099\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0535 - acc: 0.9099\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0525 - acc: 0.9099\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0515 - acc: 0.9185\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0505 - acc: 0.9056\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0496 - acc: 0.9227\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0487 - acc: 0.9227\n", "Epoch 58/80\n", "233/233 [==============================] - ETA: 0s - loss: 0.0469 - acc: 0.916 - 0s 183us/step - loss: 0.0477 - acc: 0.9185\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 244us/step - loss: 0.0468 - acc: 0.9185\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0459 - acc: 0.9185\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0450 - acc: 0.9270\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0441 - acc: 0.9270\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0433 - acc: 0.9270\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0425 - acc: 0.9270\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0417 - acc: 0.9270\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.0409 - acc: 0.9270\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0401 - acc: 0.9270\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0393 - acc: 0.9270\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.0385 - acc: 0.9270\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 159us/step - loss: 0.0378 - acc: 0.9270\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 167us/step - loss: 0.0370 - acc: 0.9270\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 151us/step - loss: 0.0362 - acc: 0.9270\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 157us/step - loss: 0.0355 - acc: 0.9270\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 159us/step - loss: 0.0347 - acc: 0.9270\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 161us/step - loss: 0.0340 - acc: 0.9270\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 179us/step - loss: 0.0333 - acc: 0.9270\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.0326 - acc: 0.9270\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 158us/step - loss: 0.0319 - acc: 0.9270\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 164us/step - loss: 0.0312 - acc: 0.9227\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 160us/step - loss: 0.0306 - acc: 0.9270\n", "Epoch 1/80\n", "233/233 [==============================] - 2s 10ms/step - loss: 0.1466 - acc: 0.2876\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 169us/step - loss: 0.1375 - acc: 0.6781\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 172us/step - loss: 0.1321 - acc: 0.7811\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.1279 - acc: 0.8326\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 165us/step - loss: 0.1244 - acc: 0.8498\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.1213 - acc: 0.8541\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 161us/step - loss: 0.1185 - acc: 0.8369\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 182us/step - loss: 0.1160 - acc: 0.8326\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 168us/step - loss: 0.1136 - acc: 0.8283\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 173us/step - loss: 0.1115 - acc: 0.8197\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.1094 - acc: 0.8283\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 165us/step - loss: 0.1074 - acc: 0.8326\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 175us/step - loss: 0.1055 - acc: 0.8326\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 173us/step - loss: 0.1037 - acc: 0.8326\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 175us/step - loss: 0.1018 - acc: 0.8412\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 167us/step - loss: 0.1001 - acc: 0.8412\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 159us/step - loss: 0.0984 - acc: 0.8455\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.0966 - acc: 0.8455\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0949 - acc: 0.8841\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.0933 - acc: 0.8841\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 172us/step - loss: 0.0916 - acc: 0.8798\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0900 - acc: 0.8755\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 181us/step - loss: 0.0884 - acc: 0.8927\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.0867 - acc: 0.8927\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 180us/step - loss: 0.0851 - acc: 0.8970\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 179us/step - loss: 0.0837 - acc: 0.9013\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 172us/step - loss: 0.0822 - acc: 0.8927\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.0808 - acc: 0.8927\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0794 - acc: 0.8927\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.0781 - acc: 0.8970\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.0767 - acc: 0.8970\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 175us/step - loss: 0.0755 - acc: 0.8970\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 169us/step - loss: 0.0742 - acc: 0.9099\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 169us/step - loss: 0.0730 - acc: 0.9099\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 178us/step - loss: 0.0717 - acc: 0.9056\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.0705 - acc: 0.9056\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.0693 - acc: 0.9013\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 167us/step - loss: 0.0681 - acc: 0.9056\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.0670 - acc: 0.9099\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 168us/step - loss: 0.0659 - acc: 0.9185\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 169us/step - loss: 0.0647 - acc: 0.9270\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.0636 - acc: 0.9185\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.0625 - acc: 0.9227\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.0614 - acc: 0.9185\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 164us/step - loss: 0.0603 - acc: 0.9270\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 250us/step - loss: 0.0592 - acc: 0.9270\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0582 - acc: 0.9185\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0571 - acc: 0.9185\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 175us/step - loss: 0.0561 - acc: 0.9270\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 175us/step - loss: 0.0551 - acc: 0.9227\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 179us/step - loss: 0.0541 - acc: 0.9185\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 163us/step - loss: 0.0531 - acc: 0.9270\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.0521 - acc: 0.9270\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.0511 - acc: 0.9399\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.0501 - acc: 0.9356\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.0492 - acc: 0.9399\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 168us/step - loss: 0.0482 - acc: 0.9399\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 167us/step - loss: 0.0473 - acc: 0.9442\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.0464 - acc: 0.9442\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 179us/step - loss: 0.0455 - acc: 0.9442\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0446 - acc: 0.9485\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 166us/step - loss: 0.0438 - acc: 0.9442\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.0429 - acc: 0.9442\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.0421 - acc: 0.9442\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.0413 - acc: 0.9442\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 183us/step - loss: 0.0405 - acc: 0.9442\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.0398 - acc: 0.9442\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0390 - acc: 0.9442\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 189us/step - loss: 0.0383 - acc: 0.9485\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 178us/step - loss: 0.0375 - acc: 0.9399\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 163us/step - loss: 0.0367 - acc: 0.9399\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 168us/step - loss: 0.0360 - acc: 0.9399\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 169us/step - loss: 0.0353 - acc: 0.9399\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 184us/step - loss: 0.0346 - acc: 0.9399\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 174us/step - loss: 0.0339 - acc: 0.9399\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 169us/step - loss: 0.0332 - acc: 0.9399\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.0325 - acc: 0.9399\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 169us/step - loss: 0.0318 - acc: 0.9399\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.0311 - acc: 0.9399\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 166us/step - loss: 0.0305 - acc: 0.9399\n", "Epoch 1/80\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "233/233 [==============================] - 3s 12ms/step - loss: 0.1467 - acc: 0.3176\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 547us/step - loss: 0.1375 - acc: 0.6996\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.1322 - acc: 0.7682\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 232us/step - loss: 0.1280 - acc: 0.8112\n", "Epoch 5/80\n", "233/233 [==============================] - 29s 126ms/step - loss: 0.1247 - acc: 0.8155\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 772us/step - loss: 0.1218 - acc: 0.8369\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 410us/step - loss: 0.1191 - acc: 0.8412\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.1163 - acc: 0.8498\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.1137 - acc: 0.8498\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 172us/step - loss: 0.1114 - acc: 0.8627\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.1093 - acc: 0.8712\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 243us/step - loss: 0.1072 - acc: 0.8712\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.1052 - acc: 0.8712\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 192us/step - loss: 0.1033 - acc: 0.8670\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 244us/step - loss: 0.1015 - acc: 0.8670\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 250us/step - loss: 0.0997 - acc: 0.8584\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 377us/step - loss: 0.0980 - acc: 0.8670\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 340us/step - loss: 0.0963 - acc: 0.8627\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 247us/step - loss: 0.0947 - acc: 0.8627\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 1ms/step - loss: 0.0931 - acc: 0.8627\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 250us/step - loss: 0.0915 - acc: 0.8627\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 171us/step - loss: 0.0899 - acc: 0.8627\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 242us/step - loss: 0.0884 - acc: 0.8712\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 254us/step - loss: 0.0868 - acc: 0.8755\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 243us/step - loss: 0.0853 - acc: 0.8798\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 207us/step - loss: 0.0838 - acc: 0.8798\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0824 - acc: 0.8841\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 310us/step - loss: 0.0809 - acc: 0.8841\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 784us/step - loss: 0.0796 - acc: 0.8841\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 243us/step - loss: 0.0782 - acc: 0.8798\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 431us/step - loss: 0.0769 - acc: 0.8798\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0755 - acc: 0.8841\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 219us/step - loss: 0.0743 - acc: 0.8755\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 288us/step - loss: 0.0730 - acc: 0.8712\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 227us/step - loss: 0.0718 - acc: 0.8712\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 190us/step - loss: 0.0706 - acc: 0.8712\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0694 - acc: 0.8712\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 298us/step - loss: 0.0682 - acc: 0.8712\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 671us/step - loss: 0.0670 - acc: 0.8670\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 249us/step - loss: 0.0659 - acc: 0.8755\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 267us/step - loss: 0.0647 - acc: 0.8927\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 245us/step - loss: 0.0636 - acc: 0.9099\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0624 - acc: 0.9099\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 234us/step - loss: 0.0614 - acc: 0.9099\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 356us/step - loss: 0.0603 - acc: 0.9099\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 309us/step - loss: 0.0592 - acc: 0.9099\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 315us/step - loss: 0.0582 - acc: 0.9142\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 248us/step - loss: 0.0572 - acc: 0.9142\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0562 - acc: 0.9142\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 300us/step - loss: 0.0552 - acc: 0.9142\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0542 - acc: 0.9142\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 1ms/step - loss: 0.0532 - acc: 0.9142\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0522 - acc: 0.9142\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 278us/step - loss: 0.0512 - acc: 0.9142\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.0503 - acc: 0.9142\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.0494 - acc: 0.9142\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 177us/step - loss: 0.0485 - acc: 0.9142\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0476 - acc: 0.9142\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.0468 - acc: 0.9142\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0459 - acc: 0.9142\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 272us/step - loss: 0.0451 - acc: 0.9185\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 335us/step - loss: 0.0442 - acc: 0.9142\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 248us/step - loss: 0.0434 - acc: 0.9185\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0426 - acc: 0.9185\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0418 - acc: 0.9185\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0411 - acc: 0.9142\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0403 - acc: 0.9185\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0396 - acc: 0.9142\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0388 - acc: 0.9185\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 179us/step - loss: 0.0381 - acc: 0.9142\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0374 - acc: 0.9185\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 170us/step - loss: 0.0366 - acc: 0.9142\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 176us/step - loss: 0.0359 - acc: 0.9185\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 180us/step - loss: 0.0352 - acc: 0.9142\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0345 - acc: 0.9142\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 245us/step - loss: 0.0338 - acc: 0.9142\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0330 - acc: 0.9185\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0323 - acc: 0.9270\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 247us/step - loss: 0.0316 - acc: 0.9227\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0309 - acc: 0.9270\n", "Epoch 1/80\n", "233/233 [==============================] - 5s 19ms/step - loss: 0.1465 - acc: 0.2361\n", "Epoch 2/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.1375 - acc: 0.6609\n", "Epoch 3/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.1323 - acc: 0.7425\n", "Epoch 4/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.1282 - acc: 0.8112\n", "Epoch 5/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.1247 - acc: 0.8412\n", "Epoch 6/80\n", "233/233 [==============================] - 0s 240us/step - loss: 0.1217 - acc: 0.8326\n", "Epoch 7/80\n", "233/233 [==============================] - 0s 233us/step - loss: 0.1188 - acc: 0.8541\n", "Epoch 8/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.1163 - acc: 0.8584\n", "Epoch 9/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.1140 - acc: 0.8584\n", "Epoch 10/80\n", "233/233 [==============================] - 0s 287us/step - loss: 0.1119 - acc: 0.8627\n", "Epoch 11/80\n", "233/233 [==============================] - 0s 218us/step - loss: 0.1098 - acc: 0.8584\n", "Epoch 12/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.1078 - acc: 0.8584\n", "Epoch 13/80\n", "233/233 [==============================] - 0s 223us/step - loss: 0.1059 - acc: 0.8541\n", "Epoch 14/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.1040 - acc: 0.8584\n", "Epoch 15/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.1022 - acc: 0.8584\n", "Epoch 16/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.1004 - acc: 0.8584\n", "Epoch 17/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0987 - acc: 0.8541\n", "Epoch 18/80\n", "233/233 [==============================] - 0s 206us/step - loss: 0.0970 - acc: 0.8627\n", "Epoch 19/80\n", "233/233 [==============================] - 0s 257us/step - loss: 0.0953 - acc: 0.8627\n", "Epoch 20/80\n", "233/233 [==============================] - 0s 230us/step - loss: 0.0937 - acc: 0.8627\n", "Epoch 21/80\n", "233/233 [==============================] - 0s 248us/step - loss: 0.0921 - acc: 0.8627\n", "Epoch 22/80\n", "233/233 [==============================] - 0s 225us/step - loss: 0.0906 - acc: 0.8670\n", "Epoch 23/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0890 - acc: 0.8670\n", "Epoch 24/80\n", "233/233 [==============================] - 0s 210us/step - loss: 0.0875 - acc: 0.8670\n", "Epoch 25/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0860 - acc: 0.8670\n", "Epoch 26/80\n", "233/233 [==============================] - 0s 253us/step - loss: 0.0846 - acc: 0.8712\n", "Epoch 27/80\n", "233/233 [==============================] - 0s 238us/step - loss: 0.0832 - acc: 0.8670\n", "Epoch 28/80\n", "233/233 [==============================] - 0s 229us/step - loss: 0.0818 - acc: 0.8712\n", "Epoch 29/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0804 - acc: 0.8670\n", "Epoch 30/80\n", "233/233 [==============================] - 0s 198us/step - loss: 0.0791 - acc: 0.8755\n", "Epoch 31/80\n", "233/233 [==============================] - 0s 193us/step - loss: 0.0778 - acc: 0.8712\n", "Epoch 32/80\n", "233/233 [==============================] - 0s 216us/step - loss: 0.0765 - acc: 0.8712\n", "Epoch 33/80\n", "233/233 [==============================] - 0s 217us/step - loss: 0.0752 - acc: 0.8670\n", "Epoch 34/80\n", "233/233 [==============================] - 0s 231us/step - loss: 0.0739 - acc: 0.8670\n", "Epoch 35/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0726 - acc: 0.8670\n", "Epoch 36/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0714 - acc: 0.8712\n", "Epoch 37/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0702 - acc: 0.8670\n", "Epoch 38/80\n", "233/233 [==============================] - 0s 238us/step - loss: 0.0690 - acc: 0.8712\n", "Epoch 39/80\n", "233/233 [==============================] - 0s 211us/step - loss: 0.0678 - acc: 0.8670\n", "Epoch 40/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0667 - acc: 0.8712\n", "Epoch 41/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0655 - acc: 0.8670\n", "Epoch 42/80\n", "233/233 [==============================] - 0s 209us/step - loss: 0.0644 - acc: 0.8712\n", "Epoch 43/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0633 - acc: 0.8712\n", "Epoch 44/80\n", "233/233 [==============================] - 0s 228us/step - loss: 0.0623 - acc: 0.8755\n", "Epoch 45/80\n", "233/233 [==============================] - 0s 222us/step - loss: 0.0612 - acc: 0.8927\n", "Epoch 46/80\n", "233/233 [==============================] - 0s 221us/step - loss: 0.0601 - acc: 0.8884\n", "Epoch 47/80\n", "233/233 [==============================] - 0s 186us/step - loss: 0.0591 - acc: 0.9099\n", "Epoch 48/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0581 - acc: 0.9099\n", "Epoch 49/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0571 - acc: 0.9099\n", "Epoch 50/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0561 - acc: 0.9099\n", "Epoch 51/80\n", "233/233 [==============================] - 0s 239us/step - loss: 0.0551 - acc: 0.9056\n", "Epoch 52/80\n", "233/233 [==============================] - 0s 242us/step - loss: 0.0541 - acc: 0.9056\n", "Epoch 53/80\n", "233/233 [==============================] - 0s 187us/step - loss: 0.0531 - acc: 0.9056\n", "Epoch 54/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0522 - acc: 0.9056\n", "Epoch 55/80\n", "233/233 [==============================] - 0s 205us/step - loss: 0.0512 - acc: 0.9013\n", "Epoch 56/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0502 - acc: 0.9013\n", "Epoch 57/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0493 - acc: 0.9056\n", "Epoch 58/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0483 - acc: 0.9056\n", "Epoch 59/80\n", "233/233 [==============================] - 0s 195us/step - loss: 0.0474 - acc: 0.9013\n", "Epoch 60/80\n", "233/233 [==============================] - 0s 204us/step - loss: 0.0465 - acc: 0.9013\n", "Epoch 61/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0456 - acc: 0.9056\n", "Epoch 62/80\n", "233/233 [==============================] - 0s 212us/step - loss: 0.0447 - acc: 0.9056\n", "Epoch 63/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0438 - acc: 0.9099\n", "Epoch 64/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0430 - acc: 0.9056\n", "Epoch 65/80\n", "233/233 [==============================] - 0s 194us/step - loss: 0.0422 - acc: 0.9099\n", "Epoch 66/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0413 - acc: 0.9142\n", "Epoch 67/80\n", "233/233 [==============================] - 0s 201us/step - loss: 0.0405 - acc: 0.9142\n", "Epoch 68/80\n", "233/233 [==============================] - 0s 202us/step - loss: 0.0398 - acc: 0.9142\n", "Epoch 69/80\n", "233/233 [==============================] - 0s 200us/step - loss: 0.0390 - acc: 0.9185\n", "Epoch 70/80\n", "233/233 [==============================] - 0s 196us/step - loss: 0.0383 - acc: 0.9227\n", "Epoch 71/80\n", "233/233 [==============================] - 0s 220us/step - loss: 0.0375 - acc: 0.9185\n", "Epoch 72/80\n", "233/233 [==============================] - 0s 188us/step - loss: 0.0368 - acc: 0.9227\n", "Epoch 73/80\n", "233/233 [==============================] - 0s 197us/step - loss: 0.0361 - acc: 0.9185\n", "Epoch 74/80\n", "233/233 [==============================] - 0s 203us/step - loss: 0.0354 - acc: 0.9227\n", "Epoch 75/80\n", "233/233 [==============================] - 0s 199us/step - loss: 0.0347 - acc: 0.9227\n", "Epoch 76/80\n", "233/233 [==============================] - 0s 213us/step - loss: 0.0340 - acc: 0.9227\n", "Epoch 77/80\n", "233/233 [==============================] - 0s 266us/step - loss: 0.0333 - acc: 0.9270\n", "Epoch 78/80\n", "233/233 [==============================] - 0s 191us/step - loss: 0.0327 - acc: 0.9270\n", "Epoch 79/80\n", "233/233 [==============================] - 0s 215us/step - loss: 0.0320 - acc: 0.9270\n", "Epoch 80/80\n", "233/233 [==============================] - 0s 208us/step - loss: 0.0314 - acc: 0.9270\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Keras simulations using Matplotlib \n", "\n", "n_simulations = 30\n", "\n", "train_acc = []\n", "test_acc = []\n", "\n", "for i in range(n_simulations):\n", " \n", " X_train, X_test, y_train, y_test = train_test_split(X_data, y_data\n", " , test_size=0.3, random_state=42) \n", " \n", " model = Sequential()\n", " model.add(Dense(units=500, activation='softmax', input_dim=n_components))\n", " model.add(Dense(units=8))# 8 cluster classif. output\n", " model.compile(loss= 'mse', optimizer='RMSprop', metrics= ['accuracy'])\n", " history = model.fit(X_train, y_train, epochs=80, batch_size= 60)\n", "\n", " accuracy = history.history['acc']\n", " loss = history.history['loss']\n", " train_acc.append(accuracy[79])\n", " \n", " score = model.evaluate(X_test, y_test,verbose=0)\n", " test_acc.append(score[1])\n", "\n", " # summarize history for accuracy/loss\n", " plt.plot(accuracy, 'o', color = 'mediumaquamarine', alpha = 0.3, markersize= 5)\n", " plt.plot(loss, 'o', color = 'orangered', alpha = 0.3, markersize= 5)\n", " plt.title('Keras Model Training $P. aeruginosa$ ', fontsize = 15)\n", " plt.ylabel('Acc / Loss ')\n", " plt.xlabel('epoch')\n", " plt.ylim(0,1.1)\n", " plt.legend(['Acc.','Loss' ], loc='best')\n", " \n", "plt.savefig('keras-model-train-paeru.tiff', dpi = 350) " ] }, { "cell_type": "code", "execution_count": 245, "metadata": {}, "outputs": [], "source": [ "tos\n", "train = ['train'] * len(train_acc)\n", "test = ['test'] * len(train_acc)" ] }, { "cell_type": "code", "execution_count": 246, "metadata": {}, "outputs": [], "source": [ "x = list(zip(train_acc, paeru,train))\n", "y = list(zip(test_acc, paeru, test))" ] }, { "cell_type": "code", "execution_count": 247, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(0.92274677676704309, '$P.aeruginosa$', 'train'),\n", " (0.92703861765595463, '$P.aeruginosa$', 'train'),\n", " (0.91845493511068976, '$P.aeruginosa$', 'train'),\n", " (0.90128753957830277, '$P.aeruginosa$', 'train'),\n", " (0.90987123593751962, '$P.aeruginosa$', 'train')]" ] }, "execution_count": 247, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x[:5]" ] }, { "cell_type": "code", "execution_count": 248, "metadata": {}, "outputs": [], "source": [ "entries= x + y " ] }, { "cell_type": "code", "execution_count": 249, "metadata": {}, "outputs": [], "source": [ "paeru_df = pd.DataFrame(index = range(n_simulations*2))\n", "paeru_df = pd.DataFrame(entries, columns=['accuracy', 'organism', 'type'])\n", "\n" ] }, { "cell_type": "code", "execution_count": 250, "metadata": {}, "outputs": [], "source": [ "paeru_df.to_csv('paeru-model.csv')" ] }, { "cell_type": "code", "execution_count": 251, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/manoloflores/anaconda/lib/python3.6/site-packages/seaborn/categorical.py:637: FutureWarning: remove_na is deprecated and is a private function. Do not use.\n", " kde_data = remove_na(group_data[hue_mask])\n", "/Users/manoloflores/anaconda/lib/python3.6/site-packages/seaborn/categorical.py:932: FutureWarning: remove_na is deprecated and is a private function. Do not use.\n", " violin_data = remove_na(group_data[hue_mask])\n" ] }, { "data": { "text/plain": [ "(0.3, 1.1)" ] }, "execution_count": 251, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.violinplot(x = 'organism', y = 'accuracy',\n", " hue = 'type', data = paeru_df,\n", " palette = 'pastel', scale = 'width', \n", " inner = 'quartile')\n", "\n", "plt.ylim(.3, 1.1)" ] }, { "cell_type": "code", "execution_count": 252, "metadata": {}, "outputs": [], "source": [ "y_pred = model.predict(X_test, batch_size =100)\n", "y_pred_flat = np.round(y_pred.flatten())\n", "y_test_flat = y_test.values.flatten()" ] }, { "cell_type": "code", "execution_count": 253, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "conf_mat = confusion_matrix(y_test_flat, y_pred_flat)\n", "fig, ax = plt.subplots(figsize=(8,8))\n", "sns.heatmap(conf_mat, annot=True, fmt='d',\n", " xticklabels=['not in cluster', 'inside cluster'], yticklabels=['not in cluster', 'inside cluster'])\n", "plt.ylabel('Actual')\n", "plt.xlabel('Predicted')\n", "plt.title('Keras Classifier confusion matrix $P. aeruginosa$')\n", "#plt.savefig('conf-mat-paeru-keras.tiff', dpi = 350)" ] }, { "cell_type": "code", "execution_count": 254, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Keras model testing loss: 0.056 and accuracy: 0.703\n" ] } ], "source": [ "score = model.evaluate(X_test, y_test,verbose=0)\n", "print('Keras model testing loss: {0:.3f} and accuracy: {1:.3f}'.format(score[0], score[1]))" ] }, { "cell_type": "code", "execution_count": 124, "metadata": {}, "outputs": [], "source": [ "accuracy = history.history['acc']" ] }, { "cell_type": "code", "execution_count": 125, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.94520545822300328" ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" } ], "source": [ "accuracy[79]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We get a decent ~85-95% training accuracy with the Keras Classifier. Now let's try other algorithms " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Comparing Keras classifier with other algorithms" ] }, { "cell_type": "code", "execution_count": 130, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import cross_val_score\n", "from sklearn.model_selection import GridSearchCV\n", "from sklearn.ensemble import RandomForestClassifier" ] }, { "cell_type": "code", "execution_count": 257, "metadata": {}, "outputs": [], "source": [ "grid_params = {'max_depth' : [5,30],\n", " 'min_samples_split' : [5, 20]}" ] }, { "cell_type": "code", "execution_count": 258, "metadata": {}, "outputs": [], "source": [ "fixed_params = { 'n_estimators': 50, \n", " 'random_state' : 42, \n", " 'n_jobs' : -1}\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 259, "metadata": {}, "outputs": [], "source": [ "grid_rf = GridSearchCV(RandomForestClassifier(**fixed_params),\n", " param_grid= grid_params, \n", " n_jobs = -1,\n", " scoring = 'neg_mean_absolute_error')\n" ] }, { "cell_type": "code", "execution_count": 260, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "GridSearchCV(cv=None, error_score='raise',\n", " estimator=RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n", " max_depth=None, max_features='auto', max_leaf_nodes=None,\n", " min_impurity_decrease=0.0, min_impurity_split=None,\n", " min_samples_leaf=1, min_samples_split=2,\n", " min_weight_fraction_leaf=0.0, n_estimators=50, n_jobs=-1,\n", " oob_score=False, random_state=42, verbose=0, warm_start=False),\n", " fit_params=None, iid=True, n_jobs=-1,\n", " param_grid={'max_depth': [5, 30], 'min_samples_split': [5, 20]},\n", " pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n", " scoring='neg_mean_absolute_error', verbose=0)" ] }, "execution_count": 260, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grid_rf.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 261, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'max_depth': 30, 'min_samples_split': 5}" ] }, "execution_count": 261, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grid_rf.best_params_" ] }, { "cell_type": "code", "execution_count": 262, "metadata": {}, "outputs": [], "source": [ "model = RandomForestClassifier(**fixed_params, **grid_rf.best_params_)" ] }, { "cell_type": "code", "execution_count": 263, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n", " max_depth=30, max_features='auto', max_leaf_nodes=None,\n", " min_impurity_decrease=0.0, min_impurity_split=None,\n", " min_samples_leaf=1, min_samples_split=5,\n", " min_weight_fraction_leaf=0.0, n_estimators=50, n_jobs=-1,\n", " oob_score=False, random_state=42, verbose=0, warm_start=False)" ] }, "execution_count": 263, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 264, "metadata": {}, "outputs": [], "source": [ "y_pred = model.predict(X_test)\n", "\n", "\n", "y_pred_flat = y_pred.flatten()" ] }, { "cell_type": "code", "execution_count": 265, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 0 0.00 0.00 0.00 18\n", " 1 1.00 0.23 0.37 22\n", " 2 0.00 0.00 0.00 13\n", " 3 1.00 0.06 0.11 18\n", " 4 0.00 0.00 0.00 9\n", " 5 1.00 0.30 0.46 10\n", " 6 0.00 0.00 0.00 11\n", " 7 1.00 0.38 0.55 8\n", "\n", "avg / total 0.53 0.11 0.17 109\n", "\n", "Accuracy score : 0.138613861386\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/manoloflores/anaconda/lib/python3.6/site-packages/sklearn/metrics/classification.py:1135: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.\n", " 'precision', 'predicted', average, warn_for)\n" ] } ], "source": [ "print(classification_report(y_test, y_pred))\n", "print('Accuracy score : ', accuracy_score(y_test, y_pred))" ] }, { "cell_type": "code", "execution_count": 138, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean cross validation score: 12.36% (3.55%)\n" ] } ], "source": [ "results = cross_val_score(model, X_train, y_train, cv=5)\n", "print(\"Mean cross validation score: %.2f%% (%.2f%%)\" % (results.mean()*100, results.std()*100))" ] }, { "cell_type": "code", "execution_count": 266, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "conf_mat = confusion_matrix(y_test_flat, y_pred_flat)\n", "fig, ax = plt.subplots(figsize=(8,8))\n", "sns.heatmap(conf_mat, annot=True, fmt='d',\n", " xticklabels=['not in cluster', 'inside cluster'], yticklabels=['not in cluster', 'inside cluster'])\n", "plt.ylabel('Actual')\n", "plt.xlabel('Predicted')\n", "plt.title('Random Forest Confusion Matrix $P. aeruginosa $')\n", "plt.savefig('conf-mat-paeru-rf.tiff', dpi = 350)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### MLP" ] }, { "cell_type": "code", "execution_count": 267, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "MLPClassifier(activation='relu', alpha=1e-05, batch_size='auto', beta_1=0.9,\n", " beta_2=0.999, early_stopping=False, epsilon=1e-08,\n", " hidden_layer_sizes=(1000, 20), learning_rate='constant',\n", " learning_rate_init=0.001, max_iter=200, momentum=0.9,\n", " nesterovs_momentum=True, power_t=0.5, random_state=42, shuffle=True,\n", " solver='lbfgs', tol=0.0001, validation_fraction=0.1, verbose=False,\n", " warm_start=False)" ] }, "execution_count": 267, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.neural_network import MLPClassifier\n", "\n", "model = MLPClassifier(solver='lbfgs', alpha=1e-5,\n", " hidden_layer_sizes=(1000, 20), random_state=42)\n", "\n", "model.fit(X_train, y_train) " ] }, { "cell_type": "code", "execution_count": 268, "metadata": {}, "outputs": [], "source": [ "y_pred= model.predict(X_test)\n", "\n", "y_test_flat = y_test.values.flatten()\n", "y_pred_flat = y_pred.flatten()" ] }, { "cell_type": "code", "execution_count": 269, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 0 0.80 0.89 0.84 18\n", " 1 0.70 0.73 0.71 22\n", " 2 0.64 0.54 0.58 13\n", " 3 0.67 0.67 0.67 18\n", " 4 0.83 0.56 0.67 9\n", " 5 1.00 0.70 0.82 10\n", " 6 1.00 0.64 0.78 11\n", " 7 1.00 0.50 0.67 8\n", "\n", "avg / total 0.79 0.68 0.72 109\n", "\n", "Accuracy score : 0.613861386139\n" ] } ], "source": [ "print(classification_report(y_test, y_pred))\n", "print('Accuracy score : ', accuracy_score(y_test, y_pred))" ] }, { "cell_type": "code", "execution_count": 143, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean cross validation score: 55.22% (6.73%)\n" ] } ], "source": [ "results = cross_val_score(model, X_train, y_train, cv=5)\n", "print(\"Mean cross validation score: %.2f%% (%.2f%%)\" % (results.mean()*100, results.std()*100))" ] }, { "cell_type": "code", "execution_count": 270, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "conf_mat = confusion_matrix(y_test_flat, y_pred_flat)\n", "fig, ax = plt.subplots(figsize=(8,8))\n", "sns.heatmap(conf_mat, annot=True, fmt='d',\n", " xticklabels=['not in cluster', 'inside cluster'], yticklabels=['not in cluster', 'inside cluster'])\n", "plt.ylabel('Actual')\n", "plt.xlabel('Predicted')\n", "plt.title('MLP Confusion Matrix $P. aeruginosa $')\n", "plt.savefig('conf-mat-paeru-mlp.tiff', dpi = 350)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the case of *P. aeruginosa* the best model is MLP. One should further tune the hyperparameters for better results. Moreover, one further step is to do feature engineering on the expression conditions to get better prediction accuracy." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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 }