チラ裏備忘録

情報整理

【内部処理】畳み込みの高速処理を実現する方法

畳み込みをforループを用いずにどのように実装されているのかが気になっていたのですが,調べてみると,どうやらnn.Unfoldというメソッドを使うことで行列演算へと帰着させる方法が存在するようです.そこでnn.Unfoldを用いて畳み込みを実装してみました. …

活性化関数と重みの初期値の関係

『ゼロから作るDeep Learning』を久々に読み返すと,活性化関数と重みの初期値の関係についての記載がありました. 恥ずかしながら初期値についてはあまり意識せず適当に決めていたので,意識付けのためにも,これらの関係について検証を行ってみました(n番…

int64型のnumpy配列では,ToTensor()による正規化が行われない?

型をuint8にすると正しく[0, 1]になりました.以後,気をつけます. import numpy as np import torchvision.transforms as transforms t = transforms.ToTensor() a = np.random.randint(0, 255, size=(4, 3)) print(a.dtype) print(t(a)) # なぜか[0, 1]に…

nn.○○とnn.functional.○○の違い

qiita.com nn.ReLU()は、nn.Moduleを作ります。つまり、nn.Sequential()に追加できます。反対にnn.functional.reluは、relu関数を呼ぶだけで、もし記述するならforward methodの方に書きます。好きな方を使えば良いみたいですが、個人的には、print(model)と…

Adaptive_avg_pool2dとavg_pool2dの違い

discuss.pytorch.org test_input = Image.open('test_image.jpeg') # 1024x768 plt.figure(figsize=(12,4)) # avg_pool2d outputs1 = F.avg_pool2d(torchvision.transforms.ToTensor()(test_input), kernel_size=(4, 4), stride=2, padding=1) print(outputs…

PyTorchで線形回帰(二次関数)

はじめに PyTorchで単純な線形回帰を行いたいと思います. nn.Linear()を使ってやるのもいいのですが,今回は,重みとバイアス用のTensorを自分で定義する方針で行いました. 色々読み込み import torch import torch.nn as nn import matplotlib.pyplot as …

PyTorchでMNIST

はじめに PyTorchを触ってみました. 試しに,単純なパーセプトロンのみでMNIST分類をやってみます.すべてGoogle Colabの環境で実行しました. Python: 3.6.9 PyTorch: 1.6.0+cu101 色々読み込み import torch, torch.nn as nn, torchvision from torchvisi…

Tensorflow 2.Xでの線形回帰

今回はTensorflow2で線形回帰を行ってみようと思います.Linear Regression using TensorFlow 2.0 | by Dhiraj K | Heartbeat のページを参考にTensorflow 2を用いた線形回帰のメモを残そうと思います. ※一部改変しています インポート import tensorflow a…

matplotlib 複数グラフのプロット【plt.subplots/fig.add_subplot】

plt.subplots 大まかな流れは,plt.subplotsを使って表示したいグラフの数だけaxを取得し,ax.plotでプロットするという感じです. import numpy as np import matplotlib.pyplot as plt # 0〜10を100分割 x = np.linspace(0, 10, 100) # Figureインスタンス…

Tensorflow2 Subclassing APIの自分用メモ

参考:エキスパートのための TensorFlow 2.0 入門 | TensorFlow Core の一連の流れを自分用備忘録としてメモします. インポート import tensorflow as tf from tensorflow.keras.layers import Dense, Flatten, Conv2D from tensorflow.keras import Model …

【Python文法】__call__の呼び出し方

__init__と同じように,外部から直接参照されない書き方(アンダースコア2つで囲む)で記述される__call__はどのように使うのでしょうか? 例 class A: def __init__(self, a): self.a = a def __call__(self): print(self.a) hoge = A(10) hoge() 見てわかるよ…

Tensorflow layersの重みの初期化

tensorflow.keras.initializersをインポートし,layers APIのkernel_initializerに任意のクラスを引数として与えると,条件(定数や確率分布)に従って重みを初期化できます. 初期化 - Keras Documentation keras.initializers.Zeros() すべての重みを0で初期…

【手順メモ】Windows10にTensorflow gpu 2.0をインストール【自分用】

概要 Build from source on Windows | TensorFlow ここを参考にバージョンをあわせて,以下を実行. pipによるTensorflow 2.0のインストール CUDAのインストール CuDNNのインストール PATHを通す ちなみにPythonのバージョンは,3.6.8です. Tensorflow2.0の…

Python クラスの継承 super().__init()__

変数の上書き super().__init__()は,スーパークラスのコンストラクタを実行するための命令です. 下記の例を見てみましょう. class Parent: def __init__(self): self.test_num = 10 def show_num(self): print(self.test_num) class Child(Parent): def _…

クロスエントロピー誤差【損失関数】

『TensorflowとKerasで動かしながら学ぶディープラーニングの仕組み』から引用・抜粋しました. 概要 2つの値を元に,ウイルスに感染しているか,そうでないかを判定するネットワークを作りたい. この時,横軸に,縦軸にを取る散布図を考え,感染と非感染を…

Numpy sort() argsort()

np.sort(x) xを昇順でソートしたNumpy配列を返す. x = np.random.randint(1, 100, size=10) # array([93, 70, 18, 86, 85, 83, 66, 62, 19, 46]) np.sort(x) # array([18, 19, 46, 62, 66, 70, 83, 85, 86, 93]) x.sort()の注意点 x.sort()とすると,対象は…

Python スーパークラスとサブクラス 継承

書式 class SubClass(SuperClass): def __init__(self): # 処理 このように記述することで,サブクラスはスーパークラスの持つメソッドを受け継ぐことができる. 例. class Parent: # スーパークラス def __init__(self): pass def multiply(self, a, b): #…

Python 正規表現(matchとsearchの違い,subの使い方)

matchとsearchの違い 違いを簡単に言うと, match…先頭から探索(文章の途中にマッチするものがあってもNoneとなる) re.match(r"Hello.*", "aaaaaaaaHello, world!") # None search…文章の途中からでもマッチする result = re.search(r"Hello.*", "aaaaaaaaHe…

line-bot-sdkのメモ

GitHub - line/line-bot-sdk-python: LINE Messaging API SDK for Pythonのline-bot-sdk-python/README.rst at master · line/line-bot-sdk-python · GitHubにあるサンプルプログラムの一部を自分用にメモ. 色々読み込み # linebot.modelsから処理したいイ…

Flaskの超基本的な使い方

自分なりにまとめるため,【Python】フレームワークFlaskの基本をマスター | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイトより抜粋させていただきました. 超基本 from flask import Flask app = Flask(__name__) @app.route('/'…

if __name__ == "__main__"の意味

Pythonでよく見る if __name__ == "__main__": main() という表記に関して,とてもわかりやすく書かれている記事があったので,自分用にメモさせていただいた.(記事書かずにリンク先読めばよくね?) Pythonのif __name__ == "__main__" とは何ですか?への回…

Python 記事にするほどでもないメモ集

Kindle Unlimitedに登録したので,Python関連の本を落とし漁り,内容を適宜メモ. 本当に初歩的・基本的なことすら知らなかったのだと痛感する… 辞書やリストの要素を削除(del) l = [0,1,2,3,4] l # [0, 1, 2, 3, 4] # 特定の要素を削除 del l[2] l # [0, 1,…

Numpy ベクトルと行列 [0,0,0] ≠ [[0,0,0]]

超超超初歩的な勘違いの整理. import numpy as np x = np.array([1,2,3]) x.shape # (3,) x # array([1, 2, 3]) y = np.array([[1,2,3]]) y # array([[1, 2, 3]]) y.shape # (1, 3) これまで,x = np.array([1,2,3])→x.shapeで(1, 3)の形状が生まれるものと…

Python @演算子(内積)

Numpyのmatmul演算に相当. ※Python3.5以降 import numpy as np # ベクトル a = np.array([10, 20]) b = np.array([2, 3]) a @ b # 80 # 行列 c = np.array([[2, 3], [4, 5]]) d = np.array([[10, 5],[5, 10]]) c @ d array([[35, 40], [65, 70]]) Pythonの…

Heroku コマンドメモ

定番の流れ #git init後に… $ heroku create <アプリ名> アプリ名は省略可能で,そうするとランダムな名前が自動で割り当てられる. また,自分で決める場合も重複は認められない. ※createはgit init以降に行う.でないと下記太字のリモートリポジトリの自…

git コマンドメモ

git

gitの基礎的な使い方メモ. 以下はすべて作業用ディレクトリで行う. 初期設定からローカルリポジトリまで 初期設定 # 初期化(.gitが生成される) $ git init # 名前とメールアドレスを設定 $ git config --global user.name "Your Name" $ git config --glob…

機械学習関連 小さなメモ

書籍やウェブサイトで読んだ内容を随時メモ. 訓練データ,テストデータ,検証データの違い 訓練データ パラメータ(重みやバイアス)の学習に利用 テストデータ 汎化性能をチェックするために,最後に(理想的には一度だけ)利用 検証データ ハイパーパラメ…

MNISTデータの正規化・正解データのone-hot表記化(to_categoricalメソッド)

MNIST読み込み import tensorflow as tf tf.keras.backend.clear_session() # Destroys the current TF graph and creates a new one. from tensorflow import keras from tensorflow.keras.utils import to_categorical # one-hot表記化メソッド # データセ…

Tensorflow 2.x 最適化手法を"インスタンス"で渡す時と"文字"で渡す時の違い

参考: 最適化 - Keras Documentation from tensorflow import keras #(中略) sgd = keras.optimizers.SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True) model.compile(loss='mean_squared_error', optimizer=sgd) # 上行で作成したSGDインスタンス…

Tensorflow 2.x Functional API ショボいメモ

Tensorflow 2.xの勉強を始めたのでとても初歩的な内容をメモ. インポート import tensorflow as tf from tensorflow import keras TF1では,keras TF2では,tensorflow.keras TF2を使うので2行目のように読み込む. モデルの作成 層の定義には,keras.layer…