深層学習
1 a b 2 a b 1 import torch a = torch.tensor(list(range(9))) print(a.size()) print(a.storage_offset()) print(a.stride()) >>torch.Size([9]) >>0 >>(1,) a .view()を使うと, b = a.view(3, 3) print(b) >>tensor([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) …
1 a b 2 a b 1 a 必要な前処理は,第2章で行ったことと同じで,256×256にリサイズする事と,テンソルに変換する事です. preprocess = transforms.Compose([transforms.Resize(256), transforms.ToTensor()]) img = Image.open("golden.png") img_t = prepro…
1 a b c 2 1 a pythonのバージョンを確認するにはpython --versionと打ち込みます. >>python --version python 3.8.8 b torchのバージョンを確認するには,pythonと打ち込んでpythonを起動し,torchをインポートした後,torch.__version__で確認できます. …
ゼロから作るDeep Learning ❸ ―フレームワーク編作者:斎藤 康毅オライリー・ジャパンAmazon まとめ 各ステップまとめ 第1ステージ ステップ1~ステップ4 ステップ5~ステップ10 第2ステージ ステップ11~ステップ16 ステップ17~ステップ20 ステップ21~ステップ2…
hirohirohirohiros.hatenablog.com 前回のVGGに引き続き,dezeroでRNNとLSTMを実装します! ステップ55, 56 RNN Truncated BPTT サイン波の予測 Truncated BPTTの効果検証 ステップ60 LSTM ステップ55, 56 RNN RNNは時系列データに対して効果を発揮するモデ…
hirohirohirohiros.hatenablog.com dezeroで遂に画像認識に長けたモデルであるCNNとその代表VGG16を実装します! ステップ55, 56 CNNの復習 畳み込み演算 パディング 出力サイズの計算式 プーリング層 ステップ58 VGG16 ステップ55, 56 CNNの復習 CNNは画像…
hirohirohirohiros.hatenablog.com ステップ53 モデルの保存 ndarrayの保存と読み込み ステップ54 Dropout Direct DropoutとInverted Dropout ステップ53 モデルの保存 機械学習の学習には数時間以上かかる事がザラにあります.そのようなモデルを利用するた…
hirohirohirohiros.hatenablog.com ステップ49 Datasetクラス ステップ50 DataLoader ステップ49 Datasetクラス 大規模なデータからなるデータセットを使って学習しようとしたとき,その大規模データを一つのインスタンスにして扱おうとすると,メモリが足り…
hirohirohirohiros.hatenablog.com ステップ45 レイヤを纏めるレイヤ ステップ46 SGD,Momentum以外のOptimizer ステップ45 レイヤを纏めるレイヤ ステップ44ではパラメータを纏めるレイヤを作成し,パラメータの管理を一つのクラスで行えるようにしました.…
hirohirohirohiros.hatenablog.com ステップ42 トイデータセット 線形回帰 ステップ43 functionクラスを継承したlinear関数 ステップ42 トイデータセット トイデータセットとは,実験用の小さなデータセットの事を言います.本書では線形回帰の実験をするた…
hirohirohirohiros.hatenablog.com ステップ38 実際のtranpose関数 ステップ38 実際のtranpose関数 本書で実装したtranspose関数は2次元テンソルの転置のみを行うように実装されていましたが,numpyのtransopose関数はより汎用性が高いです. n次元テンソル…
hirohirohirohiros.hatenablog.com ステップ35 高階微分の計算グラフ ニュートン法の問題点 ステップ35 高階微分の計算グラフ tanh関数を作成し,微分を何回も行うことで複雑な計算グラフを作る事が出来ます.本書でも,8階微分の計算グラフを掲載し,ひとき…
hirohirohirohiros.hatenablog.com ステップ25, 26 計算グラフの可視化 ステップ27 テイラー展開の微分 ステップ32 高階微分の実装 ステップ25, 26 計算グラフの可視化 計算グラフを可視化するにはgraphvizというツールを使います.本書ではwindows版でのイ…
hirohirohirohiros.hatenablog.com ステップ21 演算子の優先度 ステップ23 モジュール,パッケージ,ライブラリ ステップ24 複雑な関数の微分 Define-and-RunとDefine-by-Run ステップ21 演算子の優先度 左項がndarrayインスタンスで右項が自作インスタンス…
hirohirohirohiros.hatenablog.com ステップ18 推論モードの切り替え ステップ19 @property ステップ20 演算子のオーバーロード ステップ18 推論モードの切り替え 今まで学習モード(逆伝播をする必要がある)と推論モード(逆伝播をする必要が無くメモリ使用量…
hirohirohirohiros.hatenablog.com ステップ14 累積代入文の仕様 ステップ16 Variableクラスのbackwardをheapqで実装する ステップ14 累積代入文の仕様 a = a+bとa += bは全く同じ意味だと思っていましたが,厳密には違うようです. x = np.array(1) print(i…
hirohirohirohiros.hatenablog.com ステップ7 assert ステップ9 0次元のndarrayの挙動 np.isscalar ステップ10 np.allclose テスト ステップ7 assert assert文は,条件を書いて条件がFalseの時例外を出します.プログラムの条件をテストする目的で使われます…
DLに関する話だけで無く,Pythonやソフトウェア開発に関する事についても学ぶ事が多い本だと感じたのでまとめます. hirohirohirohiros.hatenablog.com 前書き インクリメンタル ステップ2 __call__メゾット raise NotImplementedError ステップ4 微分の近似…