1. ホーム
  2. Python

ModuleNotFoundError: _pywrap_tensorflow_internal'という名前のモジュールはありません。

2022-02-11 07:53:06

ディレクトリ

I. 問題の説明

II. 問題の分析

III. 解決方法

IV. pywrap_tensorflow_internal とは?


I. 問題の説明

最近、友人が環境をインストールする際に、またこの問題に遭遇したそうです。

ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'
 
 
Failed to load the native TensorFlow runtime.

この問題は、多くの人が最初はCUDAやcuDNNの問題だと思うかもしれません。

II. 問題の分析

1. 私の友人のグラフィックカードは <スパン NVIDIA GeForce 1060 環境は <スパン CUDA9.0 は、その cuDNN7.0 そして、友人が次のようなコマンドを実行した。

pip install tensorflow-gpu

2. 上記のエラーを報告し、バージョンを確認したところ、バージョンは 1.12 のバージョンです。ここで、ブロガーは友人にこう伝えています。 バージョンに互換性がない .

III. ソリューション

1. 現在のtensorflow-gpuをアンインストールしてください。

pip uninstall tensorflow-gpu

2. tensorfow-gpuの下位バージョンをインストールする、ここではブログ主がインストールした 1.7 のバージョンです。

pip install tensorflow-gpu==1.7

3. このバージョンのtensorflow-gpuをインストールした後、エラーが報告されなくなり、友人から感謝されました〜。

IV. pywrap_tensorflow_internal とは?

1. Pythonのライブラリを見ると、これがwrapperファイルと同じであるはずであることがわかります。Pythonとtensorflowの公式サイトや問題集のサイトを見てみると、次のことがわかります: pywrap_tensorflow_internal.py モジュールは _pywrap_tensorflow_internal.so というダイナミックリンクで読み込まれている。

2. このファイルはどこから来たのでしょうか?tensorflowは をコンパイルするためにbazel swigがコンパイルされると、2つのラッパーファイルが生成されます。 pywrap_tensorflow_internal.py そして pywrap_tensorflow_internal.cc 前者は上位のPython呼び出しへのインタフェース、後者は基礎となるC API呼び出しへのインタフェースです。

3. swigとは?swigはc/c++をpythonで呼び出し可能なso-textダイナミックリンクライブラリにラップし、他の言語で深層学習モデルの訓練とテストを行えるようにします。

4. <スパン 新しいバージョンでは、この _pywrap_tensorflow_internal モジュールを呼び出すようになりました。