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でよく発生するエラーで、エラーの原因はグラフィックカードのメモリ不足です。
解決策は、グラフィックス カードが使用するメモリを減らすことです。これにはいくつかの方法があります。
- バッチサイズを減らす
- グラフィック カードがどのレイヤーで不足しているかなど、エラーの場所を分析します。たとえば、完全に接続されたレイヤーに表示される場合は、完全に接続されたレイヤーのサイズを減らし、2048 を 1042 などに変更します。
- プール層を増やし、ネットワーク全体の次元を縮小します。
- 入力画像のサイズを変更する
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 を実行します。スペック