AppleSilicon搭載MacでTensorFlowを動作させた際に 「NotImplementedError: Cannot convert a symbolic Tensor (gru/strided_slice:0) to a numpy array…」とエラーが表示される

2022-09-28

概要

背景

M1チップ搭載のMacで、TensorFlowのサンプルを動かしたところ以下のエラーが発生しました。

NotImplementedError: Cannot convert a symbolic Tensor (gru/strided_slice:0) to a numpy array. This error may indicate that you're trying to pass a Tensor to a NumPy call, which is not supported

対処方法

エラーの発生要因

こちらのエラーですが、既にGitHubのissueがあがっていました。TensorFlow2.xとnumpy1.20.xの間で発生している不具合のようです。

numpyのバージョン変更

numpyの1.19.4にダウングレードすることでエラーが解消されます。

conda install numpy==1.19.4

GitHubのissueでは、numpyのバージョンを1.19.3にすることで回避ができると記載がありますが、M1では1.19.3にダウングレードしようとすると、エラーメッセージが表示されます。

%conda install numpy==1.19.3
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.

PackagesNotFoundError: The following packages are not available from current channels:

  - numpy==1.19.3

Current channels:

  - https://conda.anaconda.org/conda-forge/osx-arm64
  - https://conda.anaconda.org/conda-forge/noarch

Miniforgeを使用すると思いますが、リンク先を見たところMiniforgeが1.19.3に対応していない(ライブラリが用意されていない)ようです。