{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from numpy import loadtxt\n", "from keras.models import load_model\n", "import tensorflow as tf\n", "from keras import backend as K\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/userdata/kerasData\r\n" ] } ], "source": [ "!pwd" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def f1(y_true, y_pred):\n", " \n", " def recall(y_true, y_pred):\n", " \"\"\"Recall metric.\n", "\n", " Only computes a batch-wise average of recall.\n", "\n", " Computes the recall, a metric for multi-label classification of\n", " how many relevant items are selected.\n", " \"\"\"\n", " true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))\n", " possible_positives = K.sum(K.round(K.clip(y_true, 0, 1)))\n", " recall = true_positives / (possible_positives + K.epsilon())\n", " return recall\n", "\n", " def precision(y_true, y_pred):\n", " \"\"\"Precision metric.\n", "\n", " Only computes a batch-wise average of precision.\n", "\n", " Computes the precision, a metric for multi-label classification of\n", " how many selected items are relevant.\n", " \"\"\"\n", " true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))\n", " predicted_positives = K.sum(K.round(K.clip(y_pred, 0, 1)))\n", " precision = true_positives / (predicted_positives + K.epsilon())\n", " return precision\n", " precision = precision(y_true, y_pred)\n", " recall = recall(y_true, y_pred)\n", " return 2*((precision*recall)/(precision+recall+K.epsilon()))" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 2781 images belonging to 2 classes.\n" ] } ], "source": [ "INIT_LR = 1e-4\n", "batch_size = 16\n", "NUM_EPOCHS = 200\n", "\n", "image_size=(128, 128)\n", "class_mode=\"binary\"\n", "image_generator = tf.keras.preprocessing.image.ImageDataGenerator()\n", "TestGenerator = image_generator.flow_from_directory(\n", " \"/userdata/kerasData/preloaded/flowDirectory/validation\",\n", " target_size=image_size,\n", " batch_size=batch_size,\n", " seed=1000,\n", " class_mode=class_mode)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "separable_conv2d (SeparableC (None, 128, 128, 16) 211 \n", "_________________________________________________________________\n", "activation (Activation) (None, 128, 128, 16) 0 \n", "_________________________________________________________________\n", "batch_normalization (BatchNo (None, 128, 128, 16) 64 \n", "_________________________________________________________________\n", "max_pooling2d (MaxPooling2D) (None, 64, 64, 16) 0 \n", "_________________________________________________________________\n", "separable_conv2d_1 (Separabl (None, 64, 64, 32) 688 \n", "_________________________________________________________________\n", "activation_1 (Activation) (None, 64, 64, 32) 0 \n", "_________________________________________________________________\n", "batch_normalization_1 (Batch (None, 64, 64, 32) 128 \n", "_________________________________________________________________\n", "max_pooling2d_1 (MaxPooling2 (None, 32, 32, 32) 0 \n", "_________________________________________________________________\n", "separable_conv2d_2 (Separabl (None, 32, 32, 64) 2400 \n", "_________________________________________________________________\n", "activation_2 (Activation) (None, 32, 32, 64) 0 \n", "_________________________________________________________________\n", "batch_normalization_2 (Batch (None, 32, 32, 64) 256 \n", "_________________________________________________________________\n", "separable_conv2d_3 (Separabl (None, 32, 32, 64) 4736 \n", "_________________________________________________________________\n", "activation_3 (Activation) (None, 32, 32, 64) 0 \n", "_________________________________________________________________\n", "batch_normalization_3 (Batch (None, 32, 32, 64) 256 \n", "_________________________________________________________________\n", "max_pooling2d_2 (MaxPooling2 (None, 16, 16, 64) 0 \n", "_________________________________________________________________\n", "flatten (Flatten) (None, 16384) 0 \n", "_________________________________________________________________\n", "dense (Dense) (None, 128) 2097280 \n", "_________________________________________________________________\n", "activation_4 (Activation) (None, 128) 0 \n", "_________________________________________________________________\n", "batch_normalization_4 (Batch (None, 128) 512 \n", "_________________________________________________________________\n", "dropout (Dropout) (None, 128) 0 \n", "_________________________________________________________________\n", "dense_1 (Dense) (None, 128) 16512 \n", "_________________________________________________________________\n", "activation_5 (Activation) (None, 128) 0 \n", "_________________________________________________________________\n", "batch_normalization_5 (Batch (None, 128) 512 \n", "_________________________________________________________________\n", "dropout_1 (Dropout) (None, 128) 0 \n", "_________________________________________________________________\n", "dense_2 (Dense) (None, 1) 129 \n", "_________________________________________________________________\n", "activation_6 (Activation) (None, 1) 0 \n", "=================================================================\n", "Total params: 2,123,684\n", "Trainable params: 2,122,820\n", "Non-trainable params: 864\n", "_________________________________________________________________\n" ] } ], "source": [ "model_128 = load_model(\"/userdata/kerasData/output/model/best_model128_128_e-4.h5\", custom_objects={\"f1\":f1})\n", "model_128.summary()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "174/174 [==============================] - 419s 2s/step - loss: 0.7333 - accuracy: 0.5045 - f1: 0.6095 - recall: 0.8166 - precision: 0.5016\n" ] }, { "data": { "text/plain": [ "[0.7332570552825928,\n", " 0.5044947862625122,\n", " 0.6094719767570496,\n", " 0.8166065216064453,\n", " 0.5015521049499512]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_128.evaluate(TestGenerator)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "separable_conv2d (SeparableC (None, 128, 128, 16) 211 \n", "_________________________________________________________________\n", "activation (Activation) (None, 128, 128, 16) 0 \n", "_________________________________________________________________\n", "batch_normalization (BatchNo (None, 128, 128, 16) 64 \n", "_________________________________________________________________\n", "max_pooling2d (MaxPooling2D) (None, 64, 64, 16) 0 \n", "_________________________________________________________________\n", "separable_conv2d_1 (Separabl (None, 64, 64, 32) 688 \n", "_________________________________________________________________\n", "activation_1 (Activation) (None, 64, 64, 32) 0 \n", "_________________________________________________________________\n", "batch_normalization_1 (Batch (None, 64, 64, 32) 128 \n", "_________________________________________________________________\n", "max_pooling2d_1 (MaxPooling2 (None, 32, 32, 32) 0 \n", "_________________________________________________________________\n", "separable_conv2d_2 (Separabl (None, 32, 32, 64) 2400 \n", "_________________________________________________________________\n", "activation_2 (Activation) (None, 32, 32, 64) 0 \n", "_________________________________________________________________\n", "batch_normalization_2 (Batch (None, 32, 32, 64) 256 \n", "_________________________________________________________________\n", "separable_conv2d_3 (Separabl (None, 32, 32, 64) 4736 \n", "_________________________________________________________________\n", "activation_3 (Activation) (None, 32, 32, 64) 0 \n", "_________________________________________________________________\n", "batch_normalization_3 (Batch (None, 32, 32, 64) 256 \n", "_________________________________________________________________\n", "max_pooling2d_2 (MaxPooling2 (None, 16, 16, 64) 0 \n", "_________________________________________________________________\n", "flatten (Flatten) (None, 16384) 0 \n", "_________________________________________________________________\n", "dense (Dense) (None, 128) 2097280 \n", "_________________________________________________________________\n", "activation_4 (Activation) (None, 128) 0 \n", "_________________________________________________________________\n", "batch_normalization_4 (Batch (None, 128) 512 \n", "_________________________________________________________________\n", "dropout (Dropout) (None, 128) 0 \n", "_________________________________________________________________\n", "dense_1 (Dense) (None, 128) 16512 \n", "_________________________________________________________________\n", "activation_5 (Activation) (None, 128) 0 \n", "_________________________________________________________________\n", "batch_normalization_5 (Batch (None, 128) 512 \n", "_________________________________________________________________\n", "dropout_1 (Dropout) (None, 128) 0 \n", "_________________________________________________________________\n", "dense_2 (Dense) (None, 2) 258 \n", "_________________________________________________________________\n", "activation_6 (Activation) (None, 2) 0 \n", "=================================================================\n", "Total params: 2,123,813\n", "Trainable params: 2,122,949\n", "Non-trainable params: 864\n", "_________________________________________________________________\n", "Found 3485 images belonging to 2 classes.\n" ] } ], "source": [ "INIT_LR = 1e-4\n", "batch_size = 16\n", "NUM_EPOCHS = 200\n", "\n", "image_size=(2048, 1536)\n", "class_mode=\"categorical\"\n", "\n", "\n", "model_e5 = load_model('/userdata/kerasData/best_model_e5.h5', custom_objects={\"f1\":f1})\n", "model_e5.summary()\n", "\n", "\n", "image_generator = tf.keras.preprocessing.image.ImageDataGenerator()\n", "testGenerator = image_generator.flow_from_directory(\n", " \"/userdata/kerasData/preloaded/flowDirectory/test\",\n", " target_size=image_size,\n", " seed=1000,\n", " batch_size=batch_size,\n", " class_mode=class_mode)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 3485 images belonging to 2 classes.\n" ] } ], "source": [ "\n", "image_size=(2048, 1536)\n", "class_mode=\"categorical\"\n", "image_generator = tf.keras.preprocessing.image.ImageDataGenerator()\n", "testGenerator = image_generator.flow_from_directory(\n", " \"/userdata/kerasData/preloaded/flowDirectory/test\",\n", " target_size=image_size,\n", " seed=1000,\n", " batch_size=batch_size,\n", " class_mode=class_mode)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "ename": "InvalidArgumentError", "evalue": "2 root error(s) found.\n (0) Invalid argument: Incompatible shapes: [16,2] vs. [3072,2]\n\t [[node mul_1 (defined at <ipython-input-2-85a3f15ecf4d>:24) ]]\n\t [[assert_less_equal/Assert/AssertGuard/pivot_f/_13/_39]]\n (1) Invalid argument: Incompatible shapes: [16,2] vs. [3072,2]\n\t [[node mul_1 (defined at <ipython-input-2-85a3f15ecf4d>:24) ]]\n0 successful operations.\n0 derived errors ignored. [Op:__inference_test_function_2377]\n\nErrors may have originated from an input operation.\nInput Source operations connected to node mul_1:\n sequential/activation_6/Softmax (defined at <ipython-input-8-6de600d60988>:1)\n\nInput Source operations connected to node mul_1:\n sequential/activation_6/Softmax (defined at <ipython-input-8-6de600d60988>:1)\n\nFunction call stack:\ntest_function -> test_function\n", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mInvalidArgumentError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m<ipython-input-8-6de600d60988>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mmodel_e5\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mevaluate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtestGenerator\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py\u001b[0m in \u001b[0;36m_method_wrapper\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_method_wrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_in_multi_worker_mode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# pylint: disable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 66\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 67\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[0;31m# Running inside `run_distribute_coordinator` already.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py\u001b[0m in \u001b[0;36mevaluate\u001b[0;34m(self, x, y, batch_size, verbose, sample_weight, steps, callbacks, max_queue_size, workers, use_multiprocessing, return_dict)\u001b[0m\n\u001b[1;32m 1079\u001b[0m step_num=step):\n\u001b[1;32m 1080\u001b[0m \u001b[0mcallbacks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mon_test_batch_begin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1081\u001b[0;31m \u001b[0mtmp_logs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtest_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0miterator\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1082\u001b[0m \u001b[0;31m# Catch OutOfRangeError for Datasets of unknown size.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1083\u001b[0m \u001b[0;31m# This blocks until the batch has finished executing.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/eager/def_function.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m 578\u001b[0m \u001b[0mxla_context\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mExit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 579\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 580\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 581\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 582\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtracing_count\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_tracing_count\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/eager/def_function.py\u001b[0m in \u001b[0;36m_call\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m 642\u001b[0m \u001b[0;31m# Lifting succeeded, so variables are initialized and we can run the\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 643\u001b[0m \u001b[0;31m# stateless function.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 644\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_stateless_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 645\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 646\u001b[0m \u001b[0mcanon_args\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcanon_kwds\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/eager/function.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 2418\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_lock\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2419\u001b[0m \u001b[0mgraph_function\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_maybe_define_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2420\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mgraph_function\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_filtered_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# pylint: disable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2421\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2422\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mproperty\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/eager/function.py\u001b[0m in \u001b[0;36m_filtered_call\u001b[0;34m(self, args, kwargs)\u001b[0m\n\u001b[1;32m 1663\u001b[0m if isinstance(t, (ops.Tensor,\n\u001b[1;32m 1664\u001b[0m resource_variable_ops.BaseResourceVariable))),\n\u001b[0;32m-> 1665\u001b[0;31m self.captured_inputs)\n\u001b[0m\u001b[1;32m 1666\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1667\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_call_flat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcaptured_inputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcancellation_manager\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/eager/function.py\u001b[0m in \u001b[0;36m_call_flat\u001b[0;34m(self, args, captured_inputs, cancellation_manager)\u001b[0m\n\u001b[1;32m 1744\u001b[0m \u001b[0;31m# No tape is watching; skip to running the function.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1745\u001b[0m return self._build_call_outputs(self._inference_function.call(\n\u001b[0;32m-> 1746\u001b[0;31m ctx, args, cancellation_manager=cancellation_manager))\n\u001b[0m\u001b[1;32m 1747\u001b[0m forward_backward = self._select_forward_and_backward_functions(\n\u001b[1;32m 1748\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/eager/function.py\u001b[0m in \u001b[0;36mcall\u001b[0;34m(self, ctx, args, cancellation_manager)\u001b[0m\n\u001b[1;32m 596\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 597\u001b[0m \u001b[0mattrs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mattrs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 598\u001b[0;31m ctx=ctx)\n\u001b[0m\u001b[1;32m 599\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 600\u001b[0m outputs = execute.execute_with_cancellation(\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/eager/execute.py\u001b[0m in \u001b[0;36mquick_execute\u001b[0;34m(op_name, num_outputs, inputs, attrs, ctx, name)\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0mctx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mensure_initialized\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 59\u001b[0m tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,\n\u001b[0;32m---> 60\u001b[0;31m inputs, attrs, num_outputs)\n\u001b[0m\u001b[1;32m 61\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mcore\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_NotOkStatusException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mname\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mInvalidArgumentError\u001b[0m: 2 root error(s) found.\n (0) Invalid argument: Incompatible shapes: [16,2] vs. [3072,2]\n\t [[node mul_1 (defined at <ipython-input-2-85a3f15ecf4d>:24) ]]\n\t [[assert_less_equal/Assert/AssertGuard/pivot_f/_13/_39]]\n (1) Invalid argument: Incompatible shapes: [16,2] vs. [3072,2]\n\t [[node mul_1 (defined at <ipython-input-2-85a3f15ecf4d>:24) ]]\n0 successful operations.\n0 derived errors ignored. [Op:__inference_test_function_2377]\n\nErrors may have originated from an input operation.\nInput Source operations connected to node mul_1:\n sequential/activation_6/Softmax (defined at <ipython-input-8-6de600d60988>:1)\n\nInput Source operations connected to node mul_1:\n sequential/activation_6/Softmax (defined at <ipython-input-8-6de600d60988>:1)\n\nFunction call stack:\ntest_function -> test_function\n" ] } ], "source": [ "model_e5.evaluate(testGenerator)" ] }, { "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.10" } }, "nbformat": 4, "nbformat_minor": 4 }