M1 Applesiliconで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」とエラーが表示される。

2022-05-07

 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のバージョンを1.19.3にすることで回避ができるそうです。そこでM1でダウングレードを試みたところ以下のエラーが発生しました。

%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

 M1ではMiniforgeを使用すると思いますが、リンク先を見たところMiniforgeが1.19.3に対応していない(ライブラリが用意されていない)ようです。
そのため1.19.4にしたところ無事動作をしました。