From b70aadee1a560b2acce2b6dbe66b9b6d4eff2084 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 29 May 2022 16:06:43 -0600 Subject: [PATCH] Update notebooks to current Keras, pip deps --- README.md | 2 +- docs/README-voila.md | 2 ++ notebooks/wut-predict.ipynb | 67 ++++++++----------------------------- notebooks/wut-train.ipynb | 49 ++++++++++++++++----------- requirements-voila.txt | 1 + requirements.txt | 1 + 6 files changed, 49 insertions(+), 73 deletions(-) diff --git a/README.md b/README.md index 7f23107..c94a5b6 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ Install dependencies from Debian. ``` sudo apt update -sudo apt install curl jq python3-pip +sudo apt install curl jq python3-pip graphviz ``` ## Install Python Packages diff --git a/docs/README-voila.md b/docs/README-voila.md index 50a5bde..9ca5f21 100644 --- a/docs/README-voila.md +++ b/docs/README-voila.md @@ -17,6 +17,8 @@ sudo su - wut pip3 install --user --upgrade pip # make sure new `pip3` at `~/.local/bin/pip3` is in front in `$PATH`. echo 'PATH=~/.local/bin:$PATH' >> ~/.bashrc +``` + logout #log back in as user wut sudo su - wut # Install Python packages for Voila diff --git a/notebooks/wut-predict.ipynb b/notebooks/wut-predict.ipynb index 8ba10e9..6da2d1f 100644 --- a/notebooks/wut-predict.ipynb +++ b/notebooks/wut-predict.ipynb @@ -46,15 +46,8 @@ "metadata": {}, "outputs": [], "source": [ - "import os" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ + "import os\n", + "\n", "import numpy as np" ] }, @@ -64,43 +57,18 @@ "metadata": {}, "outputs": [], "source": [ - "import tensorflow.python.keras" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from tensorflow import keras\n", - "from tensorflow.keras import layers" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from tensorflow.python.keras import Sequential\n", - "from tensorflow.python.keras.layers import Activation, Dropout, Flatten, Dense\n", + "import keras\n", + "from keras import layers\n", + "from keras import Sequential\n", + "from keras.layers import Activation, Dropout, Flatten, Dense\n", "from keras.preprocessing.image import ImageDataGenerator\n", - "from tensorflow.python.keras.layers import Convolution2D, MaxPooling2D, ZeroPadding2D\n", - "from tensorflow.python.keras import optimizers\n", + "from keras.layers import Convolution2D, MaxPooling2D, ZeroPadding2D\n", + "from keras import optimizers\n", "from keras.preprocessing import image\n", - "from tensorflow.python.keras.models import load_model\n", - "#from tensorflow.python.keras.preprocessing.image import load_img\n", - "#from tensorflow.python.keras.preprocessing.image import img_to_array" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from tensorflow.keras.layers import Dense, Conv2D, Flatten, Dropout, MaxPooling2D" + "from keras.models import load_model\n", + "#from keras.preprocessing.image import load_img\n", + "#from keras.preprocessing.image import img_to_array\n", + "from keras.layers import Dense, Conv2D, Flatten, Dropout, MaxPooling2D" ] }, { @@ -113,15 +81,8 @@ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", - "from sklearn.decomposition import PCA" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ + "from sklearn.decomposition import PCA\n", + "\n", "# Seaborn pip dependency\n", "import seaborn as sns" ] diff --git a/notebooks/wut-train.ipynb b/notebooks/wut-train.ipynb index 5fc71f7..dedadea 100644 --- a/notebooks/wut-train.ipynb +++ b/notebooks/wut-train.ipynb @@ -25,19 +25,19 @@ "import os\n", "import datetime\n", "import numpy as np\n", - "import tensorflow.python.keras\n", - "from tensorflow.python.keras import Sequential\n", - "from tensorflow.python.keras.layers import Activation, Dropout, Flatten, Dense\n", - "from tensorflow.python.keras.preprocessing.image import ImageDataGenerator\n", - "from tensorflow.python.keras.layers import Convolution2D, MaxPooling2D, ZeroPadding2D\n", - "from tensorflow.python.keras import optimizers\n", - "from tensorflow.python.keras.preprocessing import image\n", - "from tensorflow.python.keras.models import load_model\n", - "from tensorflow.python.keras.preprocessing.image import load_img\n", - "from tensorflow.python.keras.preprocessing.image import img_to_array\n", - "from tensorflow.keras.layers import Dense, Conv2D, Flatten, Dropout, MaxPooling2D\n", - "from tensorflow.python.keras.models import Model\n", - "from tensorflow.python.keras.layers import Input, concatenate\n", + "import keras\n", + "from keras import Sequential\n", + "from keras.layers import Activation, Dropout, Flatten, Dense\n", + "from keras.preprocessing.image import ImageDataGenerator\n", + "from keras.layers import Convolution2D, MaxPooling2D, ZeroPadding2D\n", + "from keras import optimizers\n", + "from keras.preprocessing import image\n", + "from keras.models import load_model\n", + "#from keras.preprocessing.image import load_img\n", + "#from keras.preprocessing.image import img_to_array\n", + "from keras.layers import Dense, Conv2D, Flatten, Dropout, MaxPooling2D\n", + "from keras.models import Model\n", + "from keras.layers import Input, concatenate\n", "# Visualization\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", @@ -50,6 +50,8 @@ "from ipywidgets import interact, interactive, fixed, interact_manual\n", "import ipywidgets as widgets\n", "# Display Images\n", + "\n", + "\n", "from IPython.display import display, Image" ] }, @@ -219,7 +221,7 @@ "#log_dir=\"logs/fit/\" + datetime.datetime.now().strftime(\"%Y%m%d-%H%M%S\")\n", "#tensorboard_callback = tensorflow.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)\n", "#tensorboard_callback = tensorflow.keras.callbacks.TensorBoard(log_dir=log_dir)\n", - "tensorboard_callback = tensorflow.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1, write_graph=True, write_images=True, embeddings_freq=1, update_freq='batch')" + "tensorboard_callback = keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1, write_graph=True, write_images=True, embeddings_freq=1, update_freq='batch')" ] }, { @@ -248,10 +250,19 @@ "outputs": [], "source": [ "#wutoptimizer = 'adam'\n", - "wutoptimizer = tensorflow.keras.optimizers.Adam(learning_rate=0.001, beta_1=0.9, beta_2=0.999, amsgrad=True)\n", + "wutoptimizer = keras.optimizers.Adam(learning_rate=0.001, beta_1=0.9, beta_2=0.999, amsgrad=True)\n", + "\n", "wutloss = 'binary_crossentropy'\n", "#wutmetrics = 'accuracy'\n", - "wutmetrics = ['accuracy']\n", + "wutmetrics = ['accuracy']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ "model.compile(optimizer=wutoptimizer,\n", " loss=wutloss,\n", " metrics=[wutmetrics])" @@ -354,7 +365,7 @@ "metadata": {}, "outputs": [], "source": [ - "model.save('/srv/satnogs/data/models/GMSK/wut-GMSK-201912.h5')" + "model.save('/srv/satnogs/data/models/GMSK/wut-GMSK-202205.h5')" ] }, { @@ -363,7 +374,7 @@ "metadata": {}, "outputs": [], "source": [ - "model.save('/srv/satnogs/data/models/GMSK/wut-GMSK-201912.tf')" + "model.save('/srv/satnogs/data/models/GMSK/wut-GMSK-202205.tf')" ] }, { @@ -372,7 +383,7 @@ "metadata": {}, "outputs": [], "source": [ - "from tensorflow.keras.utils import plot_model" + "from keras.utils import plot_model" ] }, { diff --git a/requirements-voila.txt b/requirements-voila.txt index 7d1bdab..c1661d8 100644 --- a/requirements-voila.txt +++ b/requirements-voila.txt @@ -4,6 +4,7 @@ jupyterlab matplotlib pandas pillow +pydot seaborn simplejson sklearn diff --git a/requirements.txt b/requirements.txt index c3c0ed0..e1ffde6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,6 +3,7 @@ ipywidgets jupyterlab matplotlib pandas +pydot seaborn sklearn tensorboard