From 3a28a7d613abaf78cf53d87bf97068a45c979af9 Mon Sep 17 00:00:00 2001 From: Anup Kumar Date: Thu, 24 Jun 2021 15:36:49 +0200 Subject: [PATCH] Update ml interactive tools --- .../default_tensorflow_notebook.ipynb | 440 ------------------ .../interactivetool_ml_jupyter_notebook.xml | 17 +- 2 files changed, 12 insertions(+), 445 deletions(-) delete mode 100644 tools/interactive/default_tensorflow_notebook.ipynb diff --git a/tools/interactive/default_tensorflow_notebook.ipynb b/tools/interactive/default_tensorflow_notebook.ipynb deleted file mode 100644 index bd238c6c604..00000000000 --- a/tools/interactive/default_tensorflow_notebook.ipynb +++ /dev/null @@ -1,440 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "disabled-interest", - "metadata": {}, - "source": [ - "# Welcome to the Galaxy's GPU enabled Interactive Jupyter Lab for Machine Learning." - ] - }, - { - "cell_type": "markdown", - "id": "resident-livestock", - "metadata": {}, - "source": [ - "The jupyter notebook is powered by the latest Jupyter Lab (3.0.7) and Tensorflow (2.4.1) which can be used to prototype and develop machine learning and deep learning solutions executing on Galaxy's NVIDIA GPUs. The docker container used can be found at [website](https://github.com/anuprulez/ml-jupyter-notebook/tree/galaxy-inte-docker-ml-jupyter)." - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "amber-tunisia", - "metadata": {}, - "outputs": [], - "source": [ - "import tensorflow as tf\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "id": "lovely-adoption", - "metadata": {}, - "source": [ - "### Resources" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "central-roller", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Num GPUs Available: 1\n" - ] - } - ], - "source": [ - "print(\"Num GPUs Available: \", len(tf.config.list_physical_devices('GPU')))" - ] - }, - { - "cell_type": "markdown", - "id": "available-metro", - "metadata": {}, - "source": [ - "### An example neural network created with Tensorflow" - ] - }, - { - "cell_type": "markdown", - "id": "million-travel", - "metadata": {}, - "source": [ - "#### Collect data" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "nutritional-ghost", - "metadata": {}, - "outputs": [], - "source": [ - "fashion_mnist = tf.keras.datasets.fashion_mnist\n", - "\n", - "(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "transparent-equilibrium", - "metadata": {}, - "outputs": [], - "source": [ - "class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',\n", - " 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "adaptive-hanging", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure()\n", - "plt.imshow(train_images[0])\n", - "plt.colorbar()\n", - "plt.grid(False)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "solved-samuel", - "metadata": {}, - "outputs": [], - "source": [ - "train_images = train_images / 255.0\n", - "\n", - "test_images = test_images / 255.0" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "embedded-charleston", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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PffUfN3LW5/4xCeiPXPmzMJjs7w1dOjQaE+ePDlpx/fU4Ycfnuzr379/zXPyJRFE/cyePTvZnjt3brRV7kEIsbzI0yOEEEKIUqCHHiGEEEKUgjaXt1588cVk++Mf/3i0WSLyUhJLB77iMVfh5ff57C2Wrfiz+HUglc94MVIvU3B2Ue/evaPtK/XyefTo0SPZx7JKr169UHa4b1mq9LBUxVWzx48fn7Tr3r17tPne8NmBe+65Z7RZQjn66KOTdj//+c8Lz6leaU7kue6666J95plnJvv233//aLOUOXjw4DY9p6uvvjram222WbJv++23b9PPFkK0HfL0CCGEEKIU6KFHCCGEEKVADz1CCCGEKAVtHtPz6quvJtscC/P6669H+7777kvafeELX4j2BhtskOzjOCFeIZvjcYDiCr8+doTbccq6b7fuuutGm2NJ/CraW265ZbS5AjUAPPnkk9FWTE9xevf999+fbM+fPz/aHM/h769FixZFm8se+ArMXEH5mWeeiTb3nWg+XJKCx4Uv3fCtb32r5r6BAwcm7aZMmRLtk046Kdrjxo2r63x8nN+f//znaC9YsCDZxyU01lhjjWj7+aerkivRkeOiiy6K9rbbbhttni+BdM7kuW/IkCFJuz59+tT1ufVyzjnnRHvQoEHJvkMOOaRVP0s0PvL0CCGEEKIU6KFHCCGEEKWgzeUtLytwNWWusuvbTZo0Kdq77757so9d3pzG6uUsdrVzmrqv3MySFldu9qnonEbPVZj/85//JO34GBtuuGGy77HHHov2brvthrJT5ELnlGEgdb1zf/mSACxxFlXa9u2YI488Mtn+zne+E+1f//rXheeu9PUKRYutLly4MNnmhWEHDBgQ7ZwkwnOEvz/22muvaN9yyy3RHjVqVNKOJSw//o4//vhot3VKfCPiS4MUlZC48847k+3Pfe5z0WbZyl97rnbO8+fFF1+ctGOJc7vttos2L/ALpFK0r+R91113RXvOnDnR5v4HJG/Vix/XfA9wf2288caF72uUeVGeHiGEEEKUAj30CCGEEKIU6KFHCCGEEKWgzWN6vvSlLyXbvAr2a6+9Fm1OewTS1FJO8waAVVZZJdocx+NjdThllpea8PokH4O1Zo4/AoCHH3442lw638d6cArupZdemuzjZTjKiI8bKEpZHzNmTLLNsTt8fXlJCiDt56KS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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(10,10))\n", - "for i in range(25):\n", - " plt.subplot(5,5,i+1)\n", - " plt.xticks([])\n", - " plt.yticks([])\n", - " plt.grid(False)\n", - " plt.imshow(train_images[i], cmap=plt.cm.binary)\n", - " plt.xlabel(class_names[train_labels[i]])\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "answering-romantic", - "metadata": {}, - "source": [ - "#### Define neural network architecture" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "enormous-guest", - "metadata": {}, - "outputs": [], - "source": [ - "model = tf.keras.Sequential([\n", - " tf.keras.layers.Flatten(input_shape=(28, 28)),\n", - " tf.keras.layers.Dense(128, activation='relu'),\n", - " tf.keras.layers.Dense(10)\n", - "])" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "id": "architectural-arbor", - "metadata": {}, - "outputs": [], - "source": [ - "model.compile(optimizer='adam',\n", - " loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),\n", - " metrics=['accuracy'])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "nasty-difficulty", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/10\n", - "1875/1875 [==============================] - 11s 6ms/step - loss: 0.6184 - accuracy: 0.7847\n", - "Epoch 2/10\n", - "1875/1875 [==============================] - 11s 6ms/step - loss: 0.3832 - accuracy: 0.8641\n", - "Epoch 3/10\n", - "1875/1875 [==============================] - 10s 5ms/step - loss: 0.3398 - accuracy: 0.8766\n", - "Epoch 4/10\n", - "1875/1875 [==============================] - 10s 5ms/step - loss: 0.3143 - accuracy: 0.8850\n", - "Epoch 5/10\n", - "1875/1875 [==============================] - 11s 6ms/step - loss: 0.2972 - accuracy: 0.8895\n", - "Epoch 6/10\n", - "1875/1875 [==============================] - 11s 6ms/step - loss: 0.2777 - accuracy: 0.8959\n", - "Epoch 7/10\n", - "1875/1875 [==============================] - 11s 6ms/step - loss: 0.2676 - accuracy: 0.8991\n", - "Epoch 8/10\n", - "1875/1875 [==============================] - 11s 6ms/step - loss: 0.2572 - accuracy: 0.9029\n", - "Epoch 9/10\n", - "1418/1875 [=====================>........] - ETA: 2s - loss: 0.2515 - accuracy: 0.9051" - ] - } - ], - "source": [ - "model.fit(train_images, train_labels, epochs=10)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "designed-billy", - "metadata": {}, - "outputs": [], - "source": [ - "test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)\n", - "\n", - "print('\\nTest accuracy:', test_acc)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "random-backup", - "metadata": {}, - "outputs": [], - "source": [ - "probability_model = tf.keras.Sequential([model, \n", - " tf.keras.layers.Softmax()])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "painful-catch", - "metadata": {}, - "outputs": [], - "source": [ - "predictions = probability_model.predict(test_images)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "accessory-approval", - "metadata": {}, - "outputs": [], - "source": [ - "def plot_image(i, predictions_array, true_label, img):\n", - " true_label, img = true_label[i], img[i]\n", - " plt.grid(False)\n", - " plt.xticks([])\n", - " plt.yticks([])\n", - "\n", - " plt.imshow(img, cmap=plt.cm.binary)\n", - "\n", - " predicted_label = np.argmax(predictions_array)\n", - " if predicted_label == true_label:\n", - " color = 'blue'\n", - " else:\n", - " color = 'red'\n", - "\n", - " plt.xlabel(\"{} {:2.0f}% ({})\".format(class_names[predicted_label],\n", - " 100*np.max(predictions_array),\n", - " class_names[true_label]),\n", - " color=color)\n", - "\n", - "def plot_value_array(i, predictions_array, true_label):\n", - " true_label = true_label[i]\n", - " plt.grid(False)\n", - " plt.xticks(range(10))\n", - " plt.yticks([])\n", - " thisplot = plt.bar(range(10), predictions_array, color=\"#777777\")\n", - " plt.ylim([0, 1])\n", - " predicted_label = np.argmax(predictions_array)\n", - "\n", - " thisplot[predicted_label].set_color('red')\n", - " thisplot[true_label].set_color('blue')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "characteristic-vegetation", - "metadata": {}, - "outputs": [], - "source": [ - "i = 0\n", - "plt.figure(figsize=(6,3))\n", - "plt.subplot(1,2,1)\n", - "plot_image(i, predictions[i], test_labels, test_images)\n", - "plt.subplot(1,2,2)\n", - "plot_value_array(i, predictions[i], test_labels)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "promising-mention", - "metadata": {}, - "outputs": [], - "source": [ - "i = 12\n", - "plt.figure(figsize=(6,3))\n", - "plt.subplot(1,2,1)\n", - "plot_image(i, predictions[i], test_labels, test_images)\n", - "plt.subplot(1,2,2)\n", - "plot_value_array(i, predictions[i], test_labels)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "hybrid-lover", - "metadata": {}, - "outputs": [], - "source": [ - "# Plot the first X test images, their predicted labels, and the true labels.\n", - "# Color correct predictions in blue and incorrect predictions in red.\n", - "num_rows = 5\n", - "num_cols = 3\n", - "num_images = num_rows*num_cols\n", - "plt.figure(figsize=(2*2*num_cols, 2*num_rows))\n", - "for i in range(num_images):\n", - " plt.subplot(num_rows, 2*num_cols, 2*i+1)\n", - " plot_image(i, predictions[i], test_labels, test_images)\n", - " plt.subplot(num_rows, 2*num_cols, 2*i+2)\n", - " plot_value_array(i, predictions[i], test_labels)\n", - "plt.tight_layout()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "demanding-discipline", - "metadata": {}, - "outputs": [], - "source": [ - "# Grab an image from the test dataset.\n", - "img = test_images[1]\n", - "\n", - "print(img.shape)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "killing-performance", - "metadata": {}, - "outputs": [], - "source": [ - "# Add the image to a batch where it's the only member.\n", - "img = (np.expand_dims(img,0))\n", - "\n", - "print(img.shape)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "located-picture", - "metadata": {}, - "outputs": [], - "source": [ - "predictions_single = probability_model.predict(img)\n", - "\n", - "print(predictions_single)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "insured-writing", - "metadata": {}, - "outputs": [], - "source": [ - "plot_value_array(1, predictions_single[0], test_labels)\n", - "_ = plt.xticks(range(10), class_names, rotation=45)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "waiting-yahoo", - "metadata": {}, - "outputs": [], - "source": [ - "np.argmax(predictions_single[0])" - ] - } - ], - "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.8.6" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/tools/interactive/interactivetool_ml_jupyter_notebook.xml b/tools/interactive/interactivetool_ml_jupyter_notebook.xml index 905c8ea5ee4..d153edbcd0d 100644 --- a/tools/interactive/interactivetool_ml_jupyter_notebook.xml +++ b/tools/interactive/interactivetool_ml_jupyter_notebook.xml @@ -22,23 +22,30 @@ mkdir -p ./jupyter/outputs/ && mkdir -p ./jupyter/data && mkdir -p ./jupyter/notebooks && + mkdir -p ./jupyter/elyra && #set $cleaned_name = re.sub('[^\w\-\.]', '_', str($input.element_identifier)) ln -sf '$input' './jupyter/data/${cleaned_name}' && ## change into the directory where the notebooks are located - cp /home/\$NB_USER/notebooks/*.ipynb ./jupyter/notebooks/ && cd ./jupyter/ && export HOME=/home/\$NB_USER/ && export PATH=/home/\$NB_USER/.local/bin:\$PATH && - chown -R \$NB_USER:users `pwd` && #if $mode.mode_select == 'scratch': - cp '$__tool_directory__/home_page.ipynb' ./home_page.ipynb && + ## copy all notebooks, workflows and data + cp /home/\$NB_USER/home_page.ipynb ./ && + cp /home/\$NB_USER/notebooks/*.ipynb ./notebooks/ && + cp /home/\$NB_USER/elyra/*.* ./elyra/ && + cp /home/\$NB_USER/data/*.tsv ./data/ && + ## provide all rights to copied files + chown -R \$NB_USER:users `pwd` && chown \$NB_USER ./home_page.ipynb && + chown \$NB_USER ./notebooks/*.ipynb && + chown \$NB_USER ./elyra/*.* && jupyter trust ./home_page.ipynb && - + jupyter trust ./notebooks/*.ipynb && + jupyter trust ./elyra/*.ipynb && jupyter lab --allow-root --no-browser --NotebookApp.shutdown_button=True - ##/usr/local/bin/start-notebook.sh #end if ]]>