[エラー解決]CannotはシンボルTensor(Strated slice 1:0)をnumpy配列に変換します.This error may indicate that you're trying to pass a Tensor to a NumPy call, which is not supported

1893 ワード

Cannot convert a symbolic Tensor (strided_slice_1: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
上記のエラーは、NumpyとTensorFlowのバージョンが一致しないためです.
ほとんどの場合、Numpy==1.19.5にダウングレードして修復できます.
しかし、私のようにTF=2.7.0/Numpy=1.20.3で正常に動作しているが、同じ環境を構築してテストできない場合は、原因を特定する必要があります.

試行プロセスの解決


バージョン
  • tensorflow:2.8.0を使用中にエラーが発生しました.pip install numpy==1.19.5です.
  • tensorflow 2.8.0はnumpy 1.2.0以上を要求するが、まずnumpy降格を行う.ただし、コードでtfを使用すると、オーバーフローバージョンエラーが発生します.
  • テンソルフローを2.7.0に降格した.
  • numpyバージョンは1.19.5
  • 同じエラーがまだ発生しています.
  • テンソルストリームを2.4.0に降格させる.
  • tf.load modelエラー.
  • tfを降格し続けるのはよくない方法であるため、他の方法を試みる.
  • エラーnpが発生しました.argmaxをtfに変換します.argmaxに変更します.
  • 後でnpに再変換中にエラーが発生しました.Cannot convert a symbolic Tensor (ArgMax: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
  • Tensorflow 2.5バージョン
  • tf.keras.load model()エラー:json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
  • 理由:TF 2.8.0-gpuが保存したモデルをTF 2.5.0にロードするとバージョンエラーが発生します.
  • RLで使用されるDLモデルには、標準化データ/非標準化データ、試験問題認知(norm,unormモデル試験)の2種類がある.
  • これとは無関係
  • numpyは削除されconda installに再インストールされました
  • base仮想環境が使用中なので、baseでcondaを使用するべきだと思いますが、まず、conda環境なので、より効果的です.
  • condaですが、この領域にはbaseに保存されているツールが多すぎて、時間がかかりすぎて続行できません.保存
  • pip uninstall numpy
    conda install numpy=1.20.3 -c conda-forge
  • コンテナでコードを実行してみます
  • 解決する

  • TF v 1使用時numpy問題と判定
  • TF 2モデルはTF 1として使用する必要があるため、「ホットカット」設定を追加します.
    (以下のプッシュを参照)
  • バージョンは前述したようにnumpy 1.19.5バージョンは正常に使用されているようですが、実際にはTFに関連している可能性があります.TFバージョンに適合するnumpyバージョンを保持すればよい(TFインストール時にデフォルトでインストール)