You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
色々な分野で応用され始めているTransformerの簡単な解説と実際に衛星画像を利用した雲判定機械学習モデルを作成していきます。 宙畑の2020年Kagglerのアンケート記事でも触れましたが、最近は自然言語処理で使われていたTransformerという技術が、自然言語処理以外の分野でも利用されるようになり、精度の高い結果を出すようになりました。 Kaggleランカーの9人に聞いた、2020年面白かったコンペ9選と論文9選 今回の記事では、Transformer や画像を扱うための Vision Transformer(ViT) についての簡単な解説をおこない、実際に ViT を利用して衛星画像の分類タスクを行います。コードはGoogle Colaboratory(GPU) 上で動かすことを想定していますので、すぐに実行できるようになっています。 Transformer Transfor
深層学習モデルの学習は、学習データの一部を抽出・勾配を計算するミニバッチ学習によって行われることが一般的です。勾配のばらつきを抑えるためには、ある程度のバッチサイズを保持する必要があります。一方で、バッチサイズの上限は利用するマシン(GPUやTPU)のメモリによって制約を受けるため、大規模なモデルや高解像度画像などを用いる際には、バッチサイズを小さくせざるを得ない場合があります。 これに対して複数のGPUや計算ノードを利用できる場合には、並列化によって単一GPUの時よりも大規模な学習を行うことができます。複数の計算機を用いた並列学習(分散学習)には大きく分けてデータ並列とモデル並列が存在しており、合わせて利用することもできます。 データ並列(Data Parallel):ミニバッチを複数の計算機に分散する方法 モデル並列(Model Parallel):一つのモデルを複数の計算機に分散する
NaNとは 概要 NaNは、浮動小数点表記で表現できない領域の表記 (Not a Numberの略) である。IEEE754-1985で定義されている。機械学習の場合、不適切なハイパーパラメータの設定を行う場合に発生しやすい。12 演算結果が、NaNになっても演算は続けることが出来る。しかし、計算を続けたい場合は良いが、発生時に検知したい場合がある。ここでは、その検知方法について記載する。 なお、PyTorchは、torch (PythonとC++) とaten (C++) で記述されている。これは、処理の高速化を図るためである。このため、説明にC++のコードが入ってくる。 NaNの演算 NaNの演算は、以下の通りである。 NaNと別の値を演算しても、NaNのままである。 NaNの値は、通常の値とは異なり自身の値と比較するとTrueでは無くFalseとなる。 NaN検出のやり方 PyTor
AMPを使うとNaNに出くわしてうまく学習できない場合があったので,そのための備忘録と,AMP自体のまとめ.あまり検索してもでてこない注意点があったので,参考になればうれしいです. Averaged Mixed Precision(AMP)とは PyTorch中の一部の計算を,通常float32で計算するところ,float16で計算して,高速化するための技術です.そんなことやると性能が下がるのでは?という疑いもありますが,NVIDIAのページとかを見ると,あまり下がらなさそうです. 基本的には,計算も計算結果もfloat16で持ちますが,パラメタはfloat32で持つので,テスト時にfloat16でしか計算できない,ということは起こりません.(全部float16で持つこともできますが,性能の低下が起きます.) 使い方 PyTorchのドキュメントの通りにやればいいです.基本的にGPU用です
行列を用いて連立方程式を解く際、torch.linalg.solveを用いて解を求めることができます。公式ドキュメントのサンプルコードをベースに、使い方を見ていきます。 torch.linalg.solve — PyTorch 1.13 documentationpytorch.org torch.linalg.solveの基本的な使い方 この関数は、以下のような行列による式の解\(X\)を求めることができます。 $$AX = B$$ ただし、\(A\in\mathbb{R}^{n\times n}, B\in\mathbb{R}^{n\times k}, X\in\mathbb{R}^{n\times k}\) とする。 torch.linalg.solveの第一引数に\(A\)を、第二引数に\(B\)を入力します。また、上のような式を解く場合はleft=Trueを指定します。 impo
GraphcoreのPoplar® SDKは、開発者がDocker Hubを介してアクセスでき、GraphcoreはDockerのVerified Publisher Programに参加しています。 Dockerと協力して、ソフトウェアスタックをコンテナイメージとして配布し、開発者がGraphcore IPUシステムでMLアプリケーションを簡単に構築、管理、デプロイできるようにします。 ハードウェアとソフトウェアをさらに使いやすくするために、開発者エクスペリエンスを継続的に強化しています。 ちょうど1年前、ユーザー向けに事前に構築されたDockerコンテナのセレクションを導入しました。 現在、イノベーションを推進するというミッションの一環として、Poplar SDK、PyTorch for IPU、TensorFlow for IPU、およびツールに、Docker Hub コミュニティの
はじめに Einsumは、様々な行列の演算ができます。通常、行列積や内積の計算では、行列の形に制約がありますが、Einsumは、添え字を使ってどんな形の行列でも計算ができてしまいます。 それゆえ、挙動が理解しにくいです。そこで、ここではfor文で実装して、挙動を分かりやすくしてみました。 torch.einsum 公式ドキュメント https://pytorch.org/docs/stable/generated/torch.einsum.html Einsumの実行結果 (4×3)のaと、(2×4)のbにEinsumを使ってみます。 import torch a = torch.tensor(range(1, 13)).reshape(4, 3) b = torch.tensor(range(1, 9)).reshape(2, 4) print(a) print(b) einsum1 =
レシピ : 基本 :- PyTorch Profiler このレシピはどのように PyTorch profile を利用するか、そしてモデルの演算の時間とメモリ消費をどのように計測するかを説明します。 イントロダクション PyTorch は単純な profiler API を含み、これはユーザがモデルで最も高価な演算を決定する必要があるとき有用です。 このレシピでは、モデルパフォーマンスを分析するためにどのように profiler を使用するかを実演するために単純な Resnet モデルを使用します。 セットアップ torch と torchvision をインストールするために以下のコマンドを使用します : pip install torch torchvision ステップ 総ての必要なライブラリをインポートする 単純な Resnet モデルをインスタンス化する 実行時間を分析するため
PyTorch Recipes See All Recipes See All Prototype Recipes Introduction to PyTorch Learn the Basics Quickstart Tensors Datasets & DataLoaders Transforms Build the Neural Network Automatic Differentiation with torch.autograd Optimizing Model Parameters Save and Load the Model Introduction to PyTorch on YouTube Introduction to PyTorch - YouTube Series Introduction to PyTorch Introduction to PyTorch T
PyTorchのtorch.flatten()はすべての次元を平坦化(一次元化)するが、torch.nn.Flattenのインスタンスは最初の次元(バッチ用の次元)はそのままで以降の次元を平坦化するという違いがある(デフォルトの場合)。 torch.flatten — PyTorch 1.8.0 documentation torch.nn.Flatten — PyTorch 1.8.0 documentation ここでは以下の内容について説明する。 torch.flatten()の使い方 torch.nn.Flattenの使い方 平坦化処理を含むtorch.nn.Moduleのサブクラスを定義する際の注意 本記事におけるPyTorchのバージョンは以下の通り。バージョンが異なると仕様が異なる可能性があるので注意。 import torch import torch.nn as nn p
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く