在我嘗試在我的 mac [Monterey 12.6.1] [chip Apple M1 MAX] 上開始使用 TensorFlow 時,我開始收到我在我的 mac mini 上沒有觀察到的錯誤 [Monterey 12.6 - Chip M1 2020]
要么是環境問題,要么是芯片組問題。[在我的 Windows 機器 Win-11 和 Mac-Mini 上作業]
代碼:
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)
在 DataSpell 中觀察到錯誤:
--------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
RuntimeError: module compiled against API version 0x10 but this version of numpy is 0xe
追溯
---------------------------------------------------------------------------
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
跟隨 Greg Hogg 教程:https ://www.youtube.com/watch?v=CbTU92pbDKw
請注意,此代碼適用于我的 mac mini 機器,但不適用于 MacBook Pro。Anaconda 環境 -> 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
我期待的是類似的結果,如 Windows 環境和構建模型并配備訓練資料的 Mac-mini。(模型物件創建無一例外)
例子:
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>
嘗試 numpy upgrade 發布的答案,我做了“numpy upgrade”,但在終端上有以下輸出,并且仍然觀察到相同的例外。
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
====================================
因此,多種方法的組合解決了這個問題:
- pip 卸載 keras
- pip 卸載 keras 預處理
- pip 卸載張量板
- pip install --upgrade numpy
- 如果第 4 步不起作用[錯誤或有關警告],則 pip uninstall numpy ;其次是 pip install numpy
- python -m pip install tensorflow-macos 修復了我的環境問題。
uj5u.com熱心網友回復:
從Apple 檔案中使用 tensorflow 安裝 tensorflow-metal
要求
- 配備 Apple 芯片或 AMD GPU 的 Mac 電腦
- macOS 12.0 或更高版本(獲取最新測驗版)
- Python 3.8 或更高版本
- Xcode 命令列工具:xcode-select --install
設定
// Download Conda environment
bash ~/miniconda.sh -b -p $HOME/miniconda
source ~/miniconda/bin/activate
conda install -c apple tensorflow-deps
// Install base TensorFlow
python -m pip install tensorflow-macos
// Install tensorflow-metal plug-in
python -m pip install tensorflow-metal
驗證設定
import tensorflow as tf
cifar = tf.keras.datasets.cifar100
(x_train, y_train), (x_test, y_test) = cifar.load_data()
model = tf.keras.applications.ResNet50(
include_top=True,
weights=None,
input_shape=(32, 32, 3),
classes=100,)
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
model.compile(optimizer="adam", loss=loss_fn, metrics=["accuracy"])
model.fit(x_train, y_train, epochs=5, batch_size=64)
uj5u.com熱心網友回復:
不過,您的問題的真正答案是您安裝了許多版本的 numpy。
請pip3 install --upgrade numpy在您的終端中運行,它應該可以解決您的問題。
uj5u.com熱心網友回復:
====================================
因此,多種方法的組合解決了這個問題:
- pip 卸載 keras
- pip 卸載 keras 預處理
- pip 卸載張量板
- pip install --upgrade numpy
- 如果第 4 步不起作用[錯誤或有關警告],則 pip uninstall numpy ;其次是 pip install numpy
- python -m pip install tensorflow-macos
這解決了我的環境問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/531090.html
上一篇:在Kivy中每秒顯示一個亂數
下一篇:ValueError:如果您的資料具有單個特征,則使用array.reshape(-1,1)重塑您的資料,如果它包含單個樣本,則使用array.reshape(1,-1)
