旅行好きなソフトエンジニアの備忘録

プログラミングや技術関連のメモを始めました

Python

【Python】 季節性分解実行時のエラーへの対処

季節性分解のやり方を調べていると、seasonal_decomposeメソッドを利用すれば良いことが分かりました。ただ、実行すると TypeError: ‘numpy.float64’ object cannot be interpreted as an integer というエラーが出てしまいました。 import statsmodels.api …

【Python】 ピリオドグラムを描画する

グラフの周期を調べるためピリオドグラムの描画方法を調べていたのですが、statsmodels.tsa.stattoolsのperiodogramを使えば良いようです。 from statsmodels.tsa.stattools import periodogram data = np.array([0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0,…

【Python】 フレームワークによるBatchNormalizationのmomentumの違いについて

KerasのBatchNormalizationの引数momentumはデフォルト値が0.99です。一方でTorchのBatchNormalizationの引数momentumはデフォルト値が0.1のようです。 いくらフレームワークが違うといっても、ここまで初期値が違うものかと調べてみると、Kerasは下記式のα…

【Python】 AUC計算方法のメモ

PythonでAUCを計算する方法を探していたのですが、下記がコードも掲載されており詳しかったです。 qiita.com from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_curve, auc classifier = RandomForestClassifier() pred…

【Python】 KerasでU-Net構造ネットワークによるセグメンテーションをする

ここ(Daimler Pedestrian Segmentation Benchmark)から取得できるデータセットを使って、写真から人を抽出するセグメンテーション問題を解いてみます。U-Netはここ( U-Net: Convolutional Networks for Biomedical Image Segmentation )で初めて発表され…

【Python】 PythonでC#のFileSystemWatcher相当のクラスを作成する

C#側がファイルを作成し、それをトリガとしてpythonが起動するようにしたいと思っています。そのため、C#のFileSystemWatcherに相当するようなクラスが欲しいと思ったのですが、以下のサイトに書かれていました。 qiita.com import time from watchdog.obser…

【Python】 動的なデフォルト引数を指定するときにはNoneとドキュメンテーション文字列を使う

書籍”Effective Python”項目15のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。 Pythonはデフォルト引数をモジュールロード時の一回しか評価しないので、動的な値…

【Python】 クロージャ内外で変数を共有する

書籍”Effective Python”項目15のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。 Pythonにはnonlocalというキーワードがあり、これによりクロージャ内外でデータを…

【Python】 サーバーの現在時刻を取得する

Raspberry PiからサーバーのMySQLデータベースにセンサデータを書き込む時に、センサデータ取得時刻も書き込んでいるのですが、Raspberry Pi側の現在時刻がやたらずれるため、サーバーの現在時刻を取得して補正しておくことにしました。サーバーの現在時刻を…

【Python】 enumerateのカウンタ初期値を設定する

書籍”Effective Python”項目10のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。 enumerateは知っていたのですが、カウンタの初期値を第二引数で設定できることを…

【Python】 ジェネレータ式の生成

書籍”Effective Python”項目9のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。 リスト内包表記は入力が大量な時に膨大な量のメモリを消費しかねない問題があるとの…

【Python】 リストから一つおきにデータを取り出す

書籍”Effective Python”項目6のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。 サンプリングレートが高すぎるセンサのデータ数を減らしたいことがあったので、この…

【Python】 リストのコピー方法

書籍”Effective Python”項目5のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。 リストのスライスの時に添え字startとendを省略するとコピーになる。 a = [1, 2, 3,…

【Python】 PEP8スタイルガイドに従う

書籍”Effective Python”項目2のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。 名前付けの規約 関数、変数、属性 ⇒ lowercase_underscore protected属性 ⇒ _leadin…

【Python】 LSTMによる時系列データの予測

前回SimpleRNNによる時系列データの予測を行いましたが、今回はLSTMを用いて時系列データの予測を行ってみます。 ni4muraano.hatenablog.com LSTMはSimpleRNNと比較すると長期依存性の高いデータに有効とのことなので、50回に一回パルスが発生する信号に対す…

【Python】 SimpleRNNで月平均気温を予測する

画像だけでなく時系列データにも手を出してみたい、ということで書籍「詳解ディープラーニング」を購入しました。書籍第5章から時系列データを扱っているのですが、そこで紹介されているSimpleRNNの例を写経します。書籍ではノイズの入ったサイン波の予測を…

【Python】 ndarrayのインデキシング

書籍「科学技術計算のためのPYTHON入門」のメモです。ndarrayのインデキシングについて今まで何も意識せず使っていたのですが、書籍にまとめられていたのでメモします。 基本インデキシング(ビューが生成される) # ndarray_viewの変更がndarrayにも影響を…

【OpenCV】 forループを使わずに指定した色を別の色に変更する

ディープラーニングの前処理として、画像のある色を別の色に変更しようとしていました。ただ、NumPyではforループをなるべく使用しないことが推奨されているため、どうやって実現すれば良いのか悩んでいましたが、ここ(Replace a range of colors with a sp…

【Python】 行列積の演算子

行列積はNumPyのdotメソッドを利用しますが、Python3.5/NumPy1.10からは@演算子でも行列積を表現できると知ったのでメモします。 import numpy as np A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) # a_dot_bとa_at_bは同じ結果になります…

【Python】 csv数値データファイルの読み書き

csv数値データファイルの読み書きはnumpyを使うと簡単にできます。 import numpy as np # csvファイルの読み込み(ヘッダがある場合はskiprowsを1にする) data = np.loadtxt('file.csv', delimiter=',', skiprows=0) # csvファイルへの書き込み(%0.2fで小…

【Python】 "Deep Learning Prerequisites: The Numpy Stack in Python" Lecture13のメモ

udemyで無料オンラインコースがいくつかあるのですが、Numpyの無料講座を受講中です。その中で知らなかった事をメモしておきます。 www.udemy.com レクチャー13からPandasの話になるのですが、Pandasは使えた方が良いのでしょうか。。。今のところ特に困って…

【Python】 "Deep Learning Prerequisites: The Numpy Stack in Python" Lecture10のメモ

udemyで無料オンラインコースがいくつかあるのですが、Numpyの無料講座を受講中です。その中で知らなかった事をメモしておきます。 www.udemy.com 1. 線形方程式はnp.linalg.solveで解ける import numpy as np A = np.array([[1,2], [3,4]]) b = np.array([3…

【Python】 "Deep Learning Prerequisites: The Numpy Stack in Python" Lecture4のメモ

udemyで無料オンラインコースがいくつかあるのですが、Numpyの無料講座を受講中です。その中で知らなかった事をメモしておきます。 www.udemy.com 1. ベクトルのユークリッドノルムの計算はnp.linalg.normで出来る import numpy as np vec = np.array([1, 2,…

【Python】 OSに依存しないフォルダ・ファイルパスの書き方

ディープラーニング関連の論文あるネットワークを試してみたい時、誰かが既に作成してくれていることが多くて助かります。ただ、ソースを自分の環境に落として動かそうとするとエラーになることも多く、原因の一部はOSに依存した書き方があったため、という…

【Python】 KerasでResNet等のショートカット構造を実装する

Kerasでは学習済みのResNetが利用できるため、ResNetを自分で作ることは無いと思います。ただ、ResNet以外にも下の写真のようなショートカット構造を持つネットワークがあり、これらを実装したい時にどのように作成するかをメモします。 単純なネットワーク…

【Python】 二次元データを一次元データに変換する

import numpy as np # one_dimの変更はtwo_dimに影響を与えない two_dim = np.array([[1, 2], [3, 4]]) one_dim = two_dim.flatten() import numpy as np # one_dimの変更はtwo_dimに影響を与える two_dim = np.array([[1, 2], [3, 4]]) one_dim = two_dim.r…

【Python】 リストの初期サイズを指定する

意外と知らなかった。。。 # リストのサイズを1000確保する y = [0.0]*1000

【Python】ファイル名と拡張子を分ける

import os.path file_name, extension = os.path.splitext(file_name_with_extension)

【Python】 KNNによるデータの分類

書籍「PYTHON機械学習プログラミング」のKNNによるデータの分類例をメモします。 # -*- coding: utf-8 -*- import numpy as np from matplotlib.colors import ListedColormap from matplotlib import pyplot as plt from sklearn.neighbors import KNeighbo…

【Python】 SVMによるデータの分類

書籍「PYTHON機械学習プログラミング」を読んでいて、SVMによるXORデータの分類例があったのですが、分類結果をグラフ化する部分が勉強になったのでメモします。 # -*- coding: utf-8 -*- import numpy as np from matplotlib.colors import ListedColormap …