20220214のTensorFlowに関する記事は1件です。

特定バージョンのtensorflowのインストールができないときの対処法

はじめに tensorflowで作成した深層学習モデルを学習させるときに,以下のようなエラーで学習ができず新たな仮想環境の構築を行なったのでまとめます. Conv2DCustomBackpropInputOp only supports NHWC. このエラーはおそらくCPU環境においてtensorflow2系でモデルの定義で data_format = "channels_first" 1とすると発生するもので,このエラーへの対処法は以下の二通りが考えられます. データ形状とモデルのdata_formatを全てchannels_lastにする tensorflowをダウングレードする ここでは二つ目のtensorflowをダウングレードする方法について紹介します. 今回はWindowsのPython3の環境でtensorflowのバージョン1.8.0へのダウングレードを行います. MacやLinuxでも似た流れで実行できると思います. 今回の流れ 今回の流れは以下の通りです. 現状の確認 tensorflowのバージョン1.8.0に対応しているPython3系の調査 調査で判明したバージョンのPythonのインストール インストールしたPythonで仮想環境構築 (venv使用) tensorflowのバージョン1.8.0のインストール 現状の確認 とりあえずtensorflowのバージョン1.8.0のインストールを試みます. $ pip install tensorflow==1.8.0 ERROR: could not find a version that satisfies the requirement tensorflow==1.8.0 (from versions: 2.5.0rc0, 2.5.0rc1, 2.5.0rc2, 2.5.0rc3, 2.5.0, 2.5.1, 2.5.2, 2.5.3, 2.6.0rc0, 2.6.0rc1, 2.6.0rc2, 2.6.0, 2.6.1, 2.6.2, 2.6.3, 2.7.0rc0, 2.7.0rc1, 2.7.0, 2.7.1, 2.8.0rc0, 2.8.0rc1, 2.8.0) ERROR: no matching distribution found for tensorflow==1.8.0 $ python -V Python 3.9.10 Python3.9においてtensorflowのバージョン1.8.0はインストールの候補になく,インストールすることができません. そこでtensorflowのバージョン1.8.0に対応しているPythonを探すことから始めます. tensorflowのバージョン1.8.0に対応しているPython3系の調査 まず https://pypi.org/ にアクセスして,検索欄で "tensorflow" と検索します. 検索すると以下の画像のように様々なパッケージが出てくるので,tensorflowに該当するもの(下の画像では一番上の tensorflow 2.8.0)をクリックします. tensorflowのページが開いたら,左側の"Release history"をクリックします. そうすると下の画像のようにtensorflowの様々なバージョンが一覧になって出てくるので,バージョン1.8.0を探してクリックします. tensorflowのバージョン1.8.0のダウンロードファイルは下の画像になっています. ここで下の画像の赤枠で示した部分に注目すると,これがtensorflowのバージョン1.8.0に対応しているPythonのバージョンを表しています. 下の画像ではcp27からcp36まで,つまりPython2.7とPython3.3からPython3.6までが対応しており,これらのPythonを導入する必要があるとわかります. もし既に導入しているPythonがPython2.7かPython3.3からPython3.6までの場合はtensorflowのバージョン1.8.0のインストールに進んでください. 現在のPythonのバージョンは以下のコマンドで確認できます. $ python3 -V 対応するPythonのインストール 前の調査でtensroflow1.8.0を使うためにはPython3系ではPython3.3からPython3.6が必要であることが分かったので,Python3.6のインストールを行います. まず https://www.python.org/downloads/windows/ にアクセスして,Python3.6を探します. Windows向けのインストーラが用意されている中で最も新しいPython3.6が3.6.8だったので,下の画像の赤枠の "Download Windows x86-64 executable installer" をクリックしてインストールを行います. インストールの際にインストールを行う場所をメモしておいてください. 通常は以下の場所にインストールされると思います. (usernameは適宜変更してください.) $ C:\Users\username\AppData\Local\Programs\Python\Python36 インストールしたPythonで仮想環境構築 様々なパッケージをルート環境にインストールすると,パッケージの依存関係でパッケージが正常に動作しなくなることがあるので,仮想環境を作成して作業を行うのが良いと思います. Pythonで仮想環境を構築する方法として,ここではvenvを用いて仮想環境構築を行います. ここからの操作はWindowsのコマンドプロンプトで実行します. venvはPython3.6では標準で使用可能な仮想環境作成コマンドで,以下のコマンドで仮想環境を構築することができます. ここで作成する仮想環境名を myenv,仮想環境を構築するフォルダの絶対パスを C:\Users\username\myenv とします. 仮想環境名と絶対パスは適宜変更してください. $ C:\Users\username\AppData\Local\Programs\Python\Python36\python -m venv C:\Users\username\myenv これで仮想環境を構築できたので,以下のコマンドで仮想環境を実行します. $ C:\Users\username\myenv\Scripts\activate 上記のコマンドを実行し,以下のように今いる絶対パスの前に (myenv) が付いていれば,仮想環境の実行ができています. (myenv) C:\Users\username> ここで念のために仮想環境内のPythonのバージョン確認を行います. 実行結果が以下のようになっていれば問題ありません. (myenv) C:\Users\username> python -V Python 3.6.8 仮想環境を終了するときは以下のコマンドで終了できます. (myenv) C:\Users\username> deactivate tensorflowのバージョン1.8.0のインストール tensorflowのバージョン1.8.0をインストールする場合は以下のコマンドでインストールできます. (myenv) C:\Users\username> pip install tensorflow==1.8.0 tensorflowがバージョン1.8.0でインストールできているかは以下のコマンドで検証できます. (myenv) C:\Users\username> python >>> import tensorflow >>> print(tensorflow.__version__) 1.8.0 最後に ここではtensorflowのバージョン1.8.0のインストールに関して扱いましたが,他のバージョンについても同様の方法で環境構築が可能だと思います. 参考資料 venvに関するPythonの資料 https://docs.python.org/ja/3/library/venv.html channels_firstとは,tensorflowでのデータの形状を表します.channels_firstはデータの形状がNCHW(ミニバッチのデータ数,チャンネル,高さ,幅)の順に並んでいます.一方,channels_lastはNHWC(ミニバッチのデータ数,高さ,幅,チャンネル)の順に並んだデータ形状を指します.TensorFlowのデフォルトのデータ形状はchannels_lastです. ↩
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む