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

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

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 …

【Python】 Kerasで中間層を可視化する

Kerasを利用してネットワーク中間層を可視化する方法をメモします。プログラムでは学習済みのモデルと重みがある事を想定し、それらを読み取って一層目の中間層であるConvolution2Dの重みを可視化しています。 import numpy as np from keras.models import …

【Python】CIFAR-10画像データを扱う

AlexNet等の実験でCIFAR-10(CIFAR-10 and CIFAR-100 datasets)を利用することがあります。幸いKerasにはデフォルトでCIFAR-10の画像データを取り込む関数があるのですが、諸事情によりこれが利用できなかったのでCIFAR-10を扱うための関数を作成しました。…

【Python】 Kerasでモデルを図に保存する

Kerasでは作成したモデルはここ(可視化 - Keras Documentation)にあるように簡単に図として保存できるはず、と思ったのですが予想外のトラブルに見舞われたので解決方法をメモします。環境は以下の通りです。 Windows 7 Anaconda 4.2.0 Python 3.5 トラブ…

【Python】 KerasでLeNet5っぽいネットワークを作成する

ディープラーニングの原点と言われるLeNet5(http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf)をKerasで実装し、MNISTの手書き文字を学習させました。LeNet5は以下の構造になっています。 “LeNet5っぽい"とタイトルに書いたのは、完全に論文通りには…

【Python】 MNIST手書き文字データを扱う

手書き文字のサンプルがダウンロードできる"THE MNIST DATABASE of handwritten digits"(MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges)ですが、gzファイルをダウンロードした後のデータ処理ロジックをメモします。mnis…

【Python】 OpenCVのモジュールをインポートすると"ImportError: DLL not found."というエラーが出る

(Visual Studioをインストールしていない)Windows7/Anaconda4.2.0 for Python3.5という環境で conda install –channel https://conda.anaconda.org/menpo opencv3 を実行してopencv3をインストールしたのですが、import cv2のところで"ImportError: DLL no…

【Python】 区切り文字を複数指定して文字列を分割する

C#のSplitメソッドと異なりPythonのSplitメソッドは区切り文字を一つしか指定できないようです。区切り文字を複数指定したい場合はreモジュールを利用する必要があります。 import re str = 'a,b.c_d-e' re.split('[,._-]', str) # ['a', 'b', 'c', 'd', 'e'…

【Python】 int⇔bytes変換

int ⇒ bytes num = 255 num.to_bytes(2, 'big') # 2バイト、ビッグエンディアン、b'\x00\xff'と出力される bytes ⇒ int int.from_bytes(b'\x00\xff', 'big') # 255と出力される Python3.2以降で利用可能なメソッドのようです(python3ならintとbytesの変換が…

【Python】 pipでconnect timeoutが発生する

会社でpipをするとタイムアウトに。。。単純にプロキシの問題で、こちらの情報(pythonメモ proxy下でのpip、easy_install - Qiita)に助けていただきました。 pip install pycrypto –proxy=user@proxy.hoge.jp:port

【Python】 特異スペクトル解析法の実装

特異スペクトル解析法をPythonで実装したのでメモします。書籍「信号解析 馬杉著」からの引用ですが、 特異スペクトル解析法(singular spectrum analysis)は、観測信号からの主要な変動成分の分離・抽出、観測信号の変化点や不規則点の検出、観測信号から…

【Python】 KerasのConv2Dの引数paddingについて

KerasのConv2Dを使う時にpaddingという引数があり、'valid'と'same'が選択できるのですが、これが何なのかを調べるとStackExchangeに書いてありました(convnet - border_mode for convolutional layers in keras - Data Science Stack Exchange)。 'valid'…