Skip to content
This repository has been archived by the owner on Jun 9, 2021. It is now read-only.

Initialization issues and model.predict doesn't work #266

Open
edavidk7 opened this issue May 19, 2021 · 6 comments
Open

Initialization issues and model.predict doesn't work #266

edavidk7 opened this issue May 19, 2021 · 6 comments

Comments

@edavidk7
Copy link

edavidk7 commented May 19, 2021

I am new to both TensorFlow and machine learning, I built working code on my windows system and wanted to try it on M1. I used the virtual environment created by the installer, but it seems to have issues especially with fitting (model.predict) my own data.
Here is the code:
`import tensorflow as tf
from tensorflow import keras
#import matplotlib.pyplot as plt
#%matplotlib inline
import numpy as np
(X_train, y_train), (X_test, y_test) = keras.datasets.mnist.load_data()
X_train, X_test = X_train/255, X_test/255
X_train_flattened = X_train.reshape(len(X_train),2828)
X_test_flattened = X_test.reshape(len(X_test),28
28)
model = keras.Sequential([
keras.layers.Dense(600,input_shape=(784,), activation = "relu"),
keras.layers.Dense(400, activation = "sigmoid"),
keras.layers.Dense(200, activation = "sigmoid"),
keras.layers.Dense(75, activation = "sigmoid"),
keras.layers.Dense(10, activation = "sigmoid")
])
model.compile(
optimizer = "adam", loss = "sparse_categorical_crossentropy", metrics = ["accuracy"]
)
model.fit(X_train_flattened, y_train, epochs=28)
model.evaluate(X_test_flattened,y_test)

print("Accuracy assesment:")
y_predictions = model.predict(X_test_flattened)
print(y_test[:15])

y_predicted_labels = [np.argmax(j) for j in y_predictions]
print(y_predicted_labels[:15])
cm = tf.math.confusion_matrix(labels=y_test, predictions=y_predicted_labels)
#plt.matshow(cm)`

and this is the console output:
(tensorflow_macos_venv) davidkorcak@David-Air Documents % /usr/bin/env /Users/davidkorcak/Documents/tensorflow_macos_venv/bin/python /Users/davidkorcak/.vscode/extensions/ms-python.python-2021.5.842923320/pythonFiles/lib/python/debugpy/launcher 60087 -- /Users/davidkorcak/Documents/test.py (tensorflow_macos_venv) davidkorcak@David-Air Documents % cd /Users/davidkorcak/Documents ; /usr/bin/env /Users/davidkorcak/Documents/tensorflow_macos_venv/bin/python /Users/davidkorcak/.vscode/extensions/ms-python.python-2021.5.842923320/pythonFiles/lib/python/debugpy/launcher 60109 -- /Users/davidkorcak/Documents/test.py 2021-05-19 11:53:53.554146: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:116] None of the MLIR optimization passes are enabled (registered 2) 2021-05-19 11:53:53.554439: W tensorflow/core/platform/profile_utils/cpu_utils.cc:126] Failed to get CPU frequency: 0 Hz Epoch 1/28 1875/1875 [==============================] - 4s 2ms/step - loss: 0.6058 - accuracy: 0.8328 Epoch 2/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.1043 - accuracy: 0.9695 Epoch 3/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0654 - accuracy: 0.9807 Epoch 4/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0516 - accuracy: 0.9850 Epoch 5/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0371 - accuracy: 0.9887 Epoch 6/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0304 - accuracy: 0.9913 Epoch 7/28 1875/1875 [==============================] - 3s 1ms/step - loss: 0.0233 - accuracy: 0.9928 Epoch 8/28 1875/1875 [==============================] - 3s 1ms/step - loss: 0.0250 - accuracy: 0.9917 Epoch 9/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0176 - accuracy: 0.9946 Epoch 10/28 1875/1875 [==============================] - 3s 1ms/step - loss: 0.0148 - accuracy: 0.9954 Epoch 11/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0118 - accuracy: 0.9965 Epoch 12/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0143 - accuracy: 0.9954 Epoch 13/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0105 - accuracy: 0.9965 Epoch 14/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0091 - accuracy: 0.9975 Epoch 15/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0120 - accuracy: 0.9962 Epoch 16/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0084 - accuracy: 0.9975 Epoch 17/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0099 - accuracy: 0.9970 Epoch 18/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0068 - accuracy: 0.9978 Epoch 19/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0072 - accuracy: 0.9978 Epoch 20/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0073 - accuracy: 0.9977 Epoch 21/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0077 - accuracy: 0.9978 Epoch 22/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0045 - accuracy: 0.9988 Epoch 23/28 1875/1875 [==============================] - 3s 1ms/step - loss: 0.0048 - accuracy: 0.9983 Epoch 24/28 1875/1875 [==============================] - 3s 1ms/step - loss: 0.0046 - accuracy: 0.9987 Epoch 25/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0058 - accuracy: 0.9985 Epoch 26/28 1875/1875 [==============================] - 3s 1ms/step - loss: 0.0041 - accuracy: 0.9987 Epoch 27/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0059 - accuracy: 0.9980 Epoch 28/28 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0041 - accuracy: 0.9988 313/313 [==============================] - 0s 607us/step - loss: 0.0869 - accuracy: 0.9829 Accuracy assesment: 2021-05-19 11:55:15.583944: I tensorflow/compiler/tf2mlcompute/kernels/mlc_subgraph_op.cc:326] Compute: Failed in processing TensorFlow graph sequential/MLCSubgraphOp_2_0 with frame_id = 0 and iter_id = 0 with error: Internal: ExecuteMLCInferenceGraph: Failed to execute MLC inference graph. (error will be reported 5 times unless TF_MLC_LOGGING=1). 2021-05-19 11:55:15.587260: F tensorflow/core/framework/op_kernel.cc:983] Check failed: outputs_[index].tensor == nullptr (0x124715490 vs. nullptr)
Any ideas on what to do? Besides the tensorflow-macos dependencies, I also have Jupyter installed

@masasakai
Copy link

masasakai commented May 21, 2021

I have a same issue. MacTF a1,a2,a3 are same. Please suggest the environment for MacTF, For example numpy etc.

@devnev39
Copy link

It is working fine for me.
Try this ->

  1. If you have numpy 1.20 then try to install numpy 1.19.5
  2. Check if tf.executing_eagerly() is set to True as it should be

Screenshot 2021-05-21 at 11 04 26 AM

Screenshot 2021-05-21 at 11 04 41 AM

Screenshot 2021-05-21 at 11 04 48 AM

@masasakai
Copy link

Thank you, @devnev39.
I tried your code on my M1 mac. It is works! I understand this issue that is graph executing or eagerly executing. I change to design eagerly executable models. Thank you again.

@edavidk7
Copy link
Author

@devnev39 I have the numpy version supplied with TensorFlow-macOS, which is 1.18.5. I will try your recommended code and the changing the eagerly execution parameter. Thank you.

@edavidk7
Copy link
Author

edavidk7 commented May 24, 2021

@devnev39 It seems the activation function in the last layer is the issue here. I changed the code line by line to match yours and it only works once the activation function parameter is removed in the last layer.
Edit: linear activation for output layer works fine, issue seems to be only with sigmoid

@devnev39
Copy link

I guess there is some error in your side of code. I just did all the possibilities with sigmoid and relu and also setting from_logits=True (generally used in loss function when there is no activation at output layer) and they all executed the same code in the pictures without any error.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants