AppleSilicon搭載MacでTensorFlowを動作させた際に 「NotImplementedError: Cannot convert a symbolic Tensor (gru/strided_slice:0) to a numpy array…」とエラーが表示される
概要
背景
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に対応していない(ライブラリが用意されていない)ようです。