【问题标题】:Cannot use keras models on Mac M1 with BigSur无法在带有 BigSur 的 Mac M1 上使用 keras 模型
【发布时间】:2021-07-26 11:45:55
【问题描述】:

我正在尝试使用来自 tensorflow 的 keras 的序列模型。当我执行以下语句时:

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 上的this issue,我了解到 device.frequency() 返回 0 可能是因为 NominalCPUFrequency() 返回 1。 但是,这些信息对我来说似乎太抽象了,我无法理解。

【问题讨论】:

    标签: python tensorflow keras tf.keras apple-m1


    【解决方案1】:

    前两个不用担心。

    第三个是个问题。您安装了不正确的 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

    【讨论】:

    • 这与github.com/apple/tensorflow_macos/blob/master/scripts/… 的脚本有些不同,可能更正确!
    • @zabir 你能指导我在哪里寻找 W、I、F 的解释吗?
    • 我收到有关以下软件包没有兼容版本的错误:grpcio、numpy、protobuf、tensorflow-estimator。我应该担心吗?我应该卸载当前安装的版本并安装确切的版本吗?虽然,我的 ipynb 文件到目前为止运行良好。
    • 我运行它并得到“错误:带有 ML Compute 加速的 TensorFlow 仅在 macOS 11.0 及更高版本上可用。”但我使用的是 Monterey 12.0.1
    • @ShepBryan 我有同样的错误。你找到答案了吗?
    【解决方案2】:

    我在 macOS 11.4 上做了如下操作(即使参考说“OS 要求 macOS 12.0+”),python==3.8.2 并且工作 [参考:https://developer.apple.com/metal/张量流插件/]:

    1. 在 x86 终端上创建一个 venv,即 Rosetta 终端(参见:https://dev.to/courier/tips-and-tricks-to-setup-your-apple-m1-for-development-547g) 即环境设置: x86:AMD 创建 venv:python3 -m venv ~/PATH/tensorflow-metal(用您的真实 PATH 替换 PATH) 激活venv:source ~/PATH/tensorflow-metal/bin/activate 更新点子:python -m pip install -U pip

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

    3. 安装基础张量流: python -m pip install tensorflow-macos

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

    祝你好运,干杯!

    【讨论】:

      猜你喜欢
      • 2021-11-03
      • 1970-01-01
      • 2021-10-31
      • 1970-01-01
      • 1970-01-01
      • 2021-11-01
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多