PyTorch ディープラーニング (29) PyTorch コードの重要性コンテンツ

Pytorch コードの重要な内容

1、pytorch-msssim

pip install pytorch-msssim インストールでは ssim を使用して構造的類似性損失を計算します

2、トーチ

torch.seed()  设置随机种子后,每次运行文件输出结果都一样,而不是每次随机函数生成的结果一样  
torch.manual_seed() 设置CPU生成随机数的种子,方便下次复现实验结果  

torch.squeeze()  对数据的维度进行压缩,去掉维数为1的维度,参数为在哪个地方加维度 -1是在最后一个维度处加维度,0为在第一个维度处加维度  
torch.unsqueeze() 对数据维度进行扩充  

torch.stack  在指定维度对元素叠加  

等待当前设备上所有流中的所有核心完成  
pytorch中,程序的执行是异步的  等待GPU上所有任务都完成  
torch.cuda.synchronize()

3、ヌルヌル

numpy は CUDA テンソルを読み取れないため、CPU テンソルに変換する必要があります

xxx.data.numpy() --> xxx.data.cpu().numpy()

4、操作

torch.optim から import Adam、lr_scheduler
lr_scheduler  
step: 学習率調整ステップ サイズ、学習率は step_size ごとに更新されます  
ガンマ: 学習率調整の倍数  
last_epoch: 最後のエポック番号、学習率を調整する必要があるかどうかを示すために使用されます。 last_epoch が設定された間隔を満たすと、学習率が調整されます。-1 に設定すると、学習率は初期値に設定されます。  

5、マットプロットライブラリ

matplotlib.use('agg') はプロットが表示されないことを制御します  

6、nn.モジュール

m.weight.data.normal_ モデルの重み値とバイアス値を設定します。  
m.bias.data.normal_  
m.weight.data.fill_(1) モデル パラメーターの初期化 1  
m.bias.data.zero_() モデル パラメーターの初期化 0   

7. 遭遇した問題

1. PLT 表示グレースケール画像の無効な形状の問題

問題の背景: tensorflow2.0.0 のデータセットは numpy に変換され、matplotlib を使用して表示されます。データの次元は [4, 256, 256, 1]

2、问题:「int」オブジェクトには属性「value」がありません

tensorflow のバージョンの問題である可能性があります。
解決策: in_channels = inputs.shape[-1].value を in_channels = inputs.shape.as_list()[-1] に変更するか
、.value を直接削除してみてください。

3. 問題: Tensorflow がモデルをロードし、エラーを報告します。操作用のデバイスを割り当てることができません...

config = tf.ConfigProto(allow_soft_placement=True)
 tf.Session(config=config) を sess:
     saver.restore(sess, "model-xxxx")

4. 質問: 「tensorflow.python.framework.errors_impl.ResourceExhaustedError: Shape[?] でテンソルを割り当てるときの OOM」エラー分析

これはtensorflowでよく発生するエラーで、エラーの原因はグラフィックカードのメモリ不足です。
解決策は、グラフィックス カードが使用するメモリを減らすことです。これにはいくつかの方法があります。

  1. バッチサイズを減らす
  2. グラフィック カードがどのレイヤーで不足しているかなど、エラーの場所を分析します。たとえば、完全に接続されたレイヤーに表示される場合は、完全に接続されたレイヤーのサイズを減らし、2048 を 1042 などに変更します。
  3. プール層を増やし、ネットワーク全体の次元を縮小します。
  4. 入力画像のサイズを変更する

imshow cmap 
'アクセント'、'アクセント_r'、'ブルース'、'ブルース_r'、'BrBG'、'BrBG_r'、'BuGn'、'BuGn_r'、'BuPu'、'BuPu_r'、'CMRmap'、'CMRmap_r'、'Dark2 '、'Dark2_r'、'GnBu'、'GnBu_r'、'Greens'、'Greens_r'、'Greys'、'Greys_r'、'OrRd'、'OrRd_r'、'Oranges'、'Oranges_r'、'PRGn'、 'PRGn_r'、'Paired'、'Paired_r'、'Pastel1'、'Pastel1_r'、'Pastel2'、'Pastel2_r'、'PiYG'、'PiYG_r'、'PuBu'、'PuBuGn'、'PuBuGn_r'、'PuBu_r '、'PuOr'、'PuOr_r'、'PuRd'、'PuRd_r'、'パープル'、'パープルs_r'、'RdBu'、'RdBu_r'、'RdGy'、'RdGy_r'、'RdPu'、'RdPu_r'、'RdYlBu'、'RdYlBu_r'、'RdYlGn'、'RdYlGn_r'、'レッズ'、'レッズ_r'、'セット 1'、'セット 1_r'、'セット 2'、'セット 2_r '、'Set3'、'Set3_r'、'スペクトル'、'スペクトル_r'、'ウィスティア'、'ウィスティア_r'、'YlGn'、'YlGnBu'、'YlGnBu_r'、'YlGn_r'、'YlOrBr'、'YlOrBr_r'、 'YlOrRd'、'YlOrRd_r'、'afmhot'、'afmhot_r'、'autumn'、'autumn_r'、'binary'、'binary_r'、'bone'、'bone_r'、'brg'、'brg_r'、'bwr '、'bwr_r'、'cividis'、'cividis_r'、'cool'、'cool_r'、'coolwarm'、'coolwarm_r'、'copper'、'copper_r'、'cubehelix'、'cubehelix_r'、'flag'、'flag_r'、'gist_earth'、'gist_earth_r'、'gist_gray'、'gist_gray_r'、'gist_heat'、'gist_heat_r'、'gist_ncar'、'gist_ncar_r'、'gist_rainbow '、'gist_rainbow_r'、'gist_stern'、'gist_stern_r'、'gist_yarg'、'gist_yarg_r'、'gnuplot'、'gnuplot2'、'gnuplot2_r'、'gnuplot_r'、'gray'、'gray_r'、'hot'、 'hot_r'、'hsv'、'hsv_r'、'inferno'、'inferno_r'、'jet'、'jet_r'、'magma'、'magma_r'、'nipy_spectral'、'nipy_spectral_r'、'ocean'、'ocean_r '、'ピンク'、'ピンク_r'、'プラズマ'、'プラズマ_r'、'プリズム'、'プリズム_r'、'レインボー'、'レインボー_r'、'地震'、'地震_r'、'春'、'春_r'、'夏'、'夏_r'、'tab10'、'tab10_r'、'tab20 '、'tab20_r'、'tab20b'、'tab20b_r'、'tab20c'、'tab20c_r'、'地形'、'terrain_r'、'ターボ'、'turbo_r'、'トワイライト'、'twilight_r'、'twilight_shifted'、 'twilight_shifted_r'、'viridis'、'viridis_r'、'冬'、'冬_r''tab20b_r'、'tab20c'、'tab20c_r'、'terrain'、'terrain_r'、'turbo'、'turbo_r'、'twilight'、'twilight_r'、'twilight_shifted'、'twilight_shifted_r'、'viridis'、'viridis_r '、'冬'、'冬_r''tab20b_r'、'tab20c'、'tab20c_r'、'terrain'、'terrain_r'、'turbo'、'turbo_r'、'twilight'、'twilight_r'、'twilight_shifted'、'twilight_shifted_r'、'viridis'、'viridis_r '、'冬'、'冬_r' 

8. コマンドライン

 (1)、anacondaをダウンロードしてインストールします

Anaconda ディレクトリで、Anaconda プロンプトを開き

、それぞれ python と conda と入力して
、anaconda インストール フォルダーに入ります。Shift キーと右ボタンを同時に押したままにして、Powershell ウィンドウを開いて
jupyter Notebook に入ります。開けない場合は、次の操作を行う必要があります。これらの URL の 1 つをコピーするかコピーして URL リンク
new --> Python3 Shift+Enter キーに貼り付けてコードを実行します

(2)、pytorch環境をインストールする

conda create -n pytorch python=3.8 

(3) 環境インストール後、環境を切り替える 

conda pytorch をアクティブにして
、環境
pip リストのパッケージ リストを表示します


。 pytorch 公式 Web サイト
https://pytorch.org/
NV グラフィック カードは cuda をサポートします
https://www.geforce.cn/hardware/technology/cuda/supported-gpus


cmd
nvidia -smi view driver 満たされているかどうか(ターミナルを管理者として実行する必要がある) グラフィックス カード ドライバーの CUDA バージョンを確認する


https://blog.csdn.net/zzq060143/article/details/88042075
1. まず、清華ミラー チャネル
2. インストール手順、主に 公式 Web サイト コマンドの後の -c pytorch を削除することです -c pytorch は、
インストールとダウンロードのチャネルが pytorch 公式 Web サイトのチャネルになることを意味します。したがって、清華大学によってミラーリングされたチャンネルに移動するには、それを削除する必要があります

清华源インストール
conda config --add Channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add Channels https://mirrors.tuna.tsinghua.edu.cn/anaconda /pkgs/main/
conda config --set show_channel_urls yes
# 参照
# https://mirror.tuna.tsinghua.edu.cn/help/anaconda/

conda config --add Channel https://mirror.tuna.tsinghua.edu .cn/anaconda/cloud/pytorch/

(4)、最後にpytorchをインストールするコマンドを実行して、pytorchコマンドラインをインストールします。

conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c conda-forge
上記のコマンドを実行すると、torch がインストールされるので、再度インストールする必要はありません

(5) インストールが成功したら、Python を実行し、Python コマンド コンソールに入ります。

import torch を入力します。パッケージが欠落している場合は、pip install xxx 例: pip install numpy

torch.cuda.is_available() --> 出力: true cude install is success

9. 関連コマンド 

Python ファイル: コードは全体としてブロックで実行され、Python ファイルのブロックはすべての行のコードです 長所
: 汎用性があり、普及しやすく、大規模プロジェクトに適しています
短所: Python コンソールを最初から実行する必要があります
: 実行任意の動作ブロック
長所: それぞれを表示する 変数属性の欠如: コードの読み取りと変更に役立たない
Jupyter: 任意の動作ブロックを使用する
優れている: コードの読み取りと変更に役立つ 欠点: 環境を構成する必要がある

(1) コマンドのインストールと作成 

pip install opencv-python install cv2 package

pip install tensorboard install tensorboard (x 軸のステップ サイズ、y 軸の値)
tensorboard --logdir=logs イベント ファイル フォルダー名
tensorboard --logdir=logs --port=6007 ポートを 6007 に変更します


設定 — エディタ — 一般 — コード補完 コード補完 — 大文字と小文字の一致

Ctrl + O 書き換えメソッド ctrl+l 実装メソッド

conda create -n pytorch python=3.8 環境の作成

conda update -n Base -c defaults conda update conda

(2) condaで環境を見る

conda env list conda 環境リスト
conda info --envs 環境を表示
conda delete --name env_name --all 環境を削除
conda delete --name env_name package_name 環境内のパッケージを削除
conda 環境名を非アクティブ化 環境を閉じる

python -m pip install -- upgrade pip update pip

python --version view python version

pip install -U numpy upgrade numpy

install tensorflow GPU バージョン (より高速にダウンロードするにはソースを使用)
pip install tensorflow-gpu -i https://pypi.doubanio.com/simple デフォルトのインストール バージョンは 2.6.0 です

pip アンインストール tensorflow tensorflow-gpu アンインストール tensorflow
pip install tensorflow-gpu==2.4.0 -i https://pypi.doubanio.com/simple 

(3) PyTorch を使用して CUDA と cuDNN のバージョンを表示する

import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.backends.cudnn.version())

conda config --remove-key Channels Anaconda ソースをデフォルトに戻す

(4) tensorflowのバージョンとGPUのバージョンを確認する

import tensorflow as tf
tf.__version__ # このコマンドは、インストールされている tensorflow のバージョンを取得します
print(tf.__version__) # tensorflow.python.client からの出力バージョン
tf.test.is_gpu_available() import device_lib print(device_lib.list_local_devices()) missing cudnn64_7 .dll ファイルcudnn8.0 以降をインストールした後、「ダイナミック ライブラリ 'cudnn64_7.dll' を読み込めませんでした; dlerror: cudnn64_7.dll が見つかりません」というエラー メッセージが表示されることがあります。これは、cudnn8.0 以降では cudnn64_7.dll ファイルが欠落しているためです。解決策: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin フォルダーに「cudnn64_8.dll」をコピーし、「cudnn64_7.dll」という名前を付けます。'






(5) cmd 内

ここで python python ストレージ ディレクトリ
where ipython python インタラクティブ ツール
where pip pip location ディレクトリ

pip install cupy-cuda110
pip install cupy-cuda110==7.8.0
conda create -nchainer python==3.7
conda install -c conda-forge cupy cudatoolkit =10.1
Pythonインポートcupy pipインストール
chainer
python print(chainer.backends.cuda.available) print(chainer.backends.cuda.cudnn_enabled)

importchainerchainer.backends.cuda.available

 10. py ファイルを exe ファイルにパッケージ化します。

pip install pyinstaller  
が遅い場合は、清華語ソースに変更できます。 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller は  

パッケージ化コマンドを実行します: pyinstaller -F xx/xx/xx.py  
注:ルートディレクトリの場合 以下の .py ファイルはディレクトリの設定は必要ありません  

最後に、生成された exe ファイルは dist フォルダに配置されます 同時に、  

独立した 1 つの .py ファイルとしてパッケージ化されるビルド フォルダが存在します。 exe ファイル。デフォルトで生成するには、-F パラメータ  
pyinstaller -F myscript.py  

を使用します。実行可能ファイルが実行されると、コマンド ライン ウィンドウがポップアップします。ポップアップする必要がない場合は、-w パラメータを追加できます。  
pyinstaller -F -w myscript.py  

pyInstaller -F -w -p /dir1/;/dir2/ -i /dir3/icon.ico ***.py

**問題が発生しました**  
ModuleNotFoundError  
**重要: パッケージ化する必要がありますカスタム ライブラリ フォルダーの親クラス フォルダーをインポートします**  
**メイン プログラムが配置されているファイル ディレクトリ内のパッケージ**


デフォルト モジュール: site-packages で指定されたディレクトリ  
: 必要なモジュール パスに -P DIR DIR を渡します。 pyinstaller -F -w -p DIR myscript.py など  
複数のモジュール パス: pyinstaller -p DIR1:DIR2:DIR3 myscript.py または pyinstaller -p DIR1 -p DIR2 -p DIR3 myscripy.py は、次のように  
セミコロンで区切られます: pyinstaller -F -p E:\python\clpicdownload\ venv\ Lib\site-packages;E:\python\clpicdownload\venv\Lib\site-packages mypython.py

場合によっては、モジュールが見つからないわけではありませんが、コード内の一部のモジュールは暗黙的にインポートされるため、これらのモジュールは正しくパッケージ化できますか? --hidden-import MODULENAME パラメーターを使用して、コマンド ラインでパッケージ化するときにモジュール名を指定することも、パッケージ化後に生成される myscript.spec ファイル内でモジュール名を変更することもできます。パラメーター hiddenimports=[ ] は

次のように構成されます:
hiddenimports=['cython','sklearn','sklearn.ensemble','sklearn.tree._utils','scipy._lib.messagestream'] として、
次のコマンド
pyinstaller myscript を実行します。スペック

おすすめ

転載: blog.csdn.net/jiangyangll/article/details/127601586