In my attempt to start using TensorFlow on my mac [Monterey 12.6.1] [chip Apple M1 MAX] I start to get errors that I did not observe on my mac mini [Monterey 12.6 - Chip M1 2020]
It is either an environment issue or a chipset issue. [Works on my windows machine Win-11 and Mac-Mini]
Code:
from tensorflow.keras.models import Sequential from tensorflow.keras.optimizers import Adam from tensorflow.keras import layers model = Sequential([layers.Input((3, 1)), layers.LSTM(64), layers.Dense(32, activation='relu'), layers.Dense(32, activation='relu'), layers.Dense(1)]) model.compile(loss='mse', optimizer=Adam(learning_rate=0.001), metrics=['mean_absolute_error']) model.fit(X_train, y_train, validation_data=(X_val, y_val), epochs=100) Error observed in DataSpell:
-------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) RuntimeError: module compiled against API version 0x10 but this version of numpy is 0xe Traceback
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Input In [14], in <cell line: 1>() ----> 1 from tensorflow.keras.models import Sequential 2 from tensorflow.keras.optimizers import Adam 3 from tensorflow.keras import layers Following Greg Hogg tutorial: https://www.youtube.com/watch?v=CbTU92pbDKw
Note this code work on my mac mini machine but not on the MacBook Pro. Anaconda env -> Python 3.9
python --version Python 3.9.12 conda list | grep tensorflow tensorflow-deps 2.8.0 0 apple tensorflow-estimator 2.10.0 pypi_0 pypi tensorflow-macos 2.10.0 pypi_0 pypi tensorflow-metal 0.6.0 pypi_0 pypi What I am expecting is similar outcome like the windows environment and the Mac-mini where the model is constructed and fitted with the training data. (model object creation without an exception)
Example:
Epoch 99/100 7/7 [==============================] - 0s 5ms/step - loss: 6.1541 - mean_absolute_error: 1.8648 - val_loss: 9.5456 - val_mean_absolute_error: 2.6235 Epoch 100/100 7/7 [==============================] - 0s 5ms/step - loss: 6.7555 - mean_absolute_error: 2.0134 - val_loss: 9.4403 - val_mean_absolute_error: 2.6016 <keras.callbacks.History at 0x27a6590c6a0> Attempting the numpy upgrade posted answer, I did the "numpy upgrade" yet had the output below on the terminal and the same exception still observed.
pip install numpy --upgrade Requirement already satisfied: numpy in ./opt/anaconda3/lib/python3.9/site-packages (1.21.5) Collecting numpy Using cached numpy-1.23.4-cp39-cp39-macosx_11_0_arm64.whl (13.4 MB) Installing collected packages: numpy Attempting uninstall: numpy Found existing installation: numpy 1.21.5 Uninstalling numpy-1.21.5: Successfully uninstalled numpy-1.21.5 ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. scipy 1.7.3 requires numpy<1.23.0,>=1.16.5, but you have numpy 1.23.4 which is incompatible. numba 0.55.1 requires numpy<1.22,>=1.18, but you have numpy 1.23.4 which is incompatible. Successfully installed numpy-1.23.4 ==================================
So combination of multiple approaches fixed the issue:
- pip uninstall keras
- pip uninstall keras-preprocessing
- pip uninstall tensorboard
- pip install --upgrade numpy
- If step 4 does not work [error or concerning warning], then pip uninstall numpy ; followed by pip install numpy
- python -m pip install tensorflow-macos That fix my environment problem.