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

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

Python

【Python】How to print only 3 decimal places in python numpy array? - 101 Numpy Exercises

Q: 小数点を三桁のみ表示するようにしなさい A: # Create the random array rand_arr = np.random.random([5,3]) # Limit to 3 decimal places np.set_printoptions(precision=3) rand_arr[:4] #> array([[ 0.443, 0.109, 0.97 ], #> [ 0.388, 0.447, 0.191]…

【Python】How to swap two columns in a 2d numpy array? - 101 Numpy Exercises

Q: 変数arrのカラム0とカラム1を入れ替えなさい arr = np.arange(9).reshape(3,3) #> array([[0, 1, 2], #> [3, 4, 5], #> [6, 7, 8]]) A: arr = arr[:, [1, 0, 2]] #> array([[1, 0, 2], #> [4, 3, 5], #> [7, 6, 8]]) www.machinelearningplus.com

【Python】How to replace items that satisfy a condition without affecting the original array? - 101 Numpy Exercises

Q: 0~9の奇数を元の変数に影響を与えずに-1に変更する A: import numpy as np arr = np.arange(0, 10) arr_ = np.where(arr%2 == 1, -1, arr) www.machinelearningplus.com

【Python】KerasでMobileNetのモデルファイルを読み込む方法

KerasでMobileNetのモデルファイルを読み込もうとすると"Unknown activation function:relu6"といったエラーが出ます。このエラーへの対処はここに書かれており、以下のようにすれば大丈夫でした。 from keras.utils.generic_utils import CustomObjectScope…

【Python】 ファイルの行数を数える

データがいくつ入っているのか数えたかったのですが、以下で簡単に行数を取得できました。 num_lines = sum(1 for line in open('myfile.txt')) ja.stackoverflow.com

【Python】 実行スクリプトからの相対パスでファイルにアクセスする

以下のサイトに方法が書いてありました。 qiita.com

【Python】 PyTorchで自前のロス関数を定義する

Kerasと違ってPyTorchで自前のロス関数を定義するのは大変かなと思ったのですが、Kerasとほぼ同じやり方で出来ました。 #1. ロス関数を定義して def dice_coef_loss(input, target): small_value = 1e-4 input_flattened = input.view(-1) target_flattened …

【Python】 Perceptual Hashを使って画像の類似度を調べる

一年くらい前にヒストグラムを使って画像の類似度を調べる方法をメモしていたのですが、今回はそれとは別の方法を見つけたのでその記事をメモしておきます。 ni4muraano.hatenablog.com tech.unifa-e.com 上記の記事で取り上げられているimagehashというライ…

【Python】 VAE(Variational Auto Encoder)の写経

書籍「Deep Learning with Python」にMNISTを用いたVAEの実装があったので写経します(書籍では一つのファイルに全部書くスタイルだったので、VAEクラスを作ったりしました)。 VAEの解説は以下が詳しいです。 qiita.com 実装ですが、まずは以下をvae.pyに書…

【Python】 KerasでConditional DCGANを実装する

前回DCGANを実装しましたが、今回はConditional DCGAN([1411.1784] Conditional Generative Adversarial Nets)を実装します。 DCGANの例は入力からどのような数字が生成されるかコントロールできませんでしたが、Conditional DCGANは付加情報を足すことで…

【Python】 KerasでDCGANを試す

DCGANでMNISTの手書き数字画像を生成する、ということを今更ながらやりました。元々は"Deep Learning with Python"という書籍にDCGANでCIFAR10のカエル画像を生成させる例があり、それを試してみたのですが、32×32の画像を見ても結果が良く分からなかったの…

【Python】 処理時間の計測

前処理にどのくらい時間がかかっているか調べたかったので、pythonで時間をかかる処理を調べて以下の記事のように書けば良いことが分かりました。 qiita.com 記事を読んで勝手に秒単位でしか計測できないと勘違いしていたのですが、実際に実行してみると単位…

【Python】 Keras開発者の著書

Keras開発者による著書「Deep Learning with Python」が発売されています。今はクーポンコード"CTWNIPS17"で40%オフなのでお得です。 www.manning.com

【異常検知】 GMM(Gaussian Mixture Model)による外れ値検知

GMMによる外れ値検出手法を試してみます。LOFやiForestのようにずばりそのものを見つけることが出来なかったので、scikit-learnにあるGaussianMixtureクラスを流用して作成します。 まずは、GMMを用いて外れ値検出を行うクラスをGMMAnomalyDetectorクラスと…

【異常検知】 One class SVMによる外れ値検知

外れ値検出手法の一つであるOne class SVMを試したのでメモします。 import numpy as np import matplotlib.pyplot as plt from sklearn import svm np.random.seed(42) # Generate train data X = 0.3 * np.random.randn(100, 2) # fit the model clf = svm…

【異常検知】 Fast ABOD(Angle Based Outlier Detection)による外れ値検知

外れ値検出手法の一つであるABODの論文を読んだので試してみようと思ったのですが、scikit-learnにそれっぽい手法を見つけることが出来なかったので、Fast ABODを作成しました。ABODはに対して、Fast ABODはなので、計算量の面で優位となります(ただし近似…

【異常検知】 Isolation Forestによる外れ値検知

外れ値検出手法の一つであるIsolation Forestに関する以下の資料を読んで試してみたいと思っていたところ、scikit-learnに例題があったのでメモします。 外れ値検出のアルゴリズム Isolation Forest from 翔吾 大澤 www.slideshare.net import numpy as np i…

【異常検知】 LOF(Local Outlier Factor)による外れ値検知

外れ値検出手法の一つであるLOFに関する以下の資料を読んで試してみたいと思っていたところ、scikit-learnに例題があったのでメモします。 外れ値検出のアルゴリズム Local Outlier Factor from 翔吾 大澤 www.slideshare.net import numpy as np import mat…

【Python】 Kerasのエラー:'rawunicodeescape' codec can't decode bytes in position xx-xx: truncated \uXXXXの対処法

表題のエラーに出くわしたのですが、StackOverflowの情報ではPython3、Windowsで発生するようです。自分の場合はチェックマークが付いている回答ではなく、二番目の人の回答で解決しました。 stackoverflow.com keras/utils/generic_utils.pyの code = marsh…

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