繁体   English   中英

无法在带有 BigSur 的 Mac M1 上使用 keras 型号

[英]Cannot use keras models on Mac M1 with BigSur

我正在尝试使用 tensorflow 的 keras 中的顺序 model。当我执行以下语句时:

model.fit(x_train, y_train, epochs=20, verbose=True, validation_data=(x_dev, y_dev), batch_size=10)

我收到以下错误:

I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:116] None of the MLIR optimization passes are enabled (registered 2)

W tensorflow/core/platform/profile_utils/cpu_utils.cc:126] Failed to get CPU frequency: 0 Hz

F tensorflow/core/grappler/costs/op_level_cost_estimator.cc:710] Check failed: 0 < gflops (0 vs. 0)type: "CPU"

我无法理解如何修复它。 谁能帮帮我吗。

从github的这个issue中,我了解到device.frequency()返回0可能是因为NominalCPUFrequency()返回了1。但是,这些信息对我来说似乎太抽象了,我无法理解。

我在 macOS 11.4 上完成了以下操作(即使参考说“OS 要求 macOS 12.0+”),python==3.8.2 并且工作 [参考:https://developer.apple.com/metal/tensorflow-plugin /]:

  1. Create a venv on x86 terminal, ie Rosetta Terminal (see: https://dev.to/courier/tips-and-tricks-to-setup-your-apple-m1-for-development-547g ) ie Environment Setup: x86 : AMD Create venv: python3 -m venv ~/PATH/tensorflow-metal (Substitute PATH with your real PATH) Activate the venv: source ~/PATH/tensorflow-metal/bin/activate Update pip: python -m pip install -U pip

  2. 安装您需要的任何库/包。 例如: 例如: pip 安装 matplotlib jupyterlab

  3. 安装基础 tensorflow: python -m pip 安装 tensorflow-macos

  4. 安装金属插件: python -m pip install tensorflow-metal

祝你好运和干杯!

前两个不用担心。

第三个是问题。 您安装了不正确的 TensorFlow 版本。 使用支持 Mac M1 芯片的芯片。

运行以下 bash 脚本下载并安装 TensorFlow。

#!/bin/bash

set -e

VERSION=0.1alpha3
INSTALLER_PACKAGE=tensorflow_macos-$VERSION.tar.gz
INSTALLER_PATH=https://github.com/apple/tensorflow_macos/releases/download/v$VERSION/$INSTALLER_PACKAGE
INSTALLER_SCRIPT=install_venv.sh

echo

# Check to make sure we're good to go.
if [[ $(uname) != Darwin ]] || [[ $(sw_vers -productName) != macOS ]] || [[ $(sw_vers -productVersion) != "11."* ]] ; then 
  echo "ERROR: TensorFlow with ML Compute acceleration is only available on macOS 11.0 and later." 
  exit 1
fi

# This 
echo "Installation script for pre-release tensorflow_macos $VERSION.  Please visit https://github.com/apple/tensorflow_macos "
echo "for instructions and license information."   
echo
echo "This script will download tensorflow_macos $VERSION and needed binary dependencies, then install them into a new "
echo "or existing Python 3.8 virtual environment."

# Make sure the user knows what's going on.  
read -p 'Continue [y/N]? '    

if [[ ! $REPLY =~ ^[Yy]$ ]]
then
exit 1
fi
echo

echo "Downloading installer."
tmp_dir=$(mktemp -d)

pushd $tmp_dir

curl -LO $INSTALLER_PATH 

echo "Extracting installer."
tar xf $INSTALLER_PACKAGE

cd tensorflow_macos 

function graceful_error () { 
  echo 
  echo "Error running installation script with default options.  Please fix the above errors and proceed by running "
  echo 
  echo "  $PWD/$INSTALLER_SCRIPT --prompt"
  echo 
  echo
  exit 1
}

bash ./$INSTALLER_SCRIPT --prompt || graceful_error 

popd
rm -rf $tmp_dir

参考: https://github.com/apple/tensorflow_macos

这可能根本没有帮助,但由于我遇到了同样的问题,我设法让 model 在没有此处提供的解决方案(我将很快尝试)的情况下进行训练,只需像这样更改我的 Y_test(0s 和 1s),当制作 train_test_split: ( to_categorical(label )。所以:

X_train, X_test, Y_train, Y_test = train_test_split(dataset, 
                                                to_categorical(label), 
                                                test_size=.2, 
                                                random_state=42)

然后,在训练 model 时,我收到以下消息 - 我不完全理解:

2022-04-03 23:10:08.941296: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:112] device_type GPU 的插件优化器已启用。

因此,这并不是一个真正的解决方案,而是一个临时的解决方法——或者它可能会让人深入了解哪里出了问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM