読者です 読者をやめる 読者になる 読者になる

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

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

【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

【Docker】 コンテナ管理用サブコマンド

コンテナにホストのディレクトリをマウントする $ docker run -it -v ホストのディレクトリ:コンテナのディレクトリ イメージ名 -vがマウントするためのオプション 使用例:$ docker run -it -v /root/data:/tmp/data ubuntu:14.04 コンテナとクライアント環…

【Docker】 ローカル環境でのイメージ管理サブコマンド

書籍「Docker入門」のChapter3-03とChapter3-04で紹介されているサブコマンドのメモです。 既存イメージを別名でコピーする $ docker tag 既存イメージ名 変更後イメージ名 イメージやコンテナの詳細情報を表示する $ docker inspect コンテナ名またはイメー…

【Docker】 Docker Quick Start Terminal起動時のエラー(Looks like something went wrong)のメモ

Dockerコンテナ内のUbuntuからapt-get出来なくなったので、「とりあえずDocker再インストールするか」と思い再インストール後にDocker Quick Start Terminalを起動しようとすると、表題のエラーが出て起動すらできなくなりました。何度Docker Toolboxをアン…

【Docker】 Docker Quick Start Terminal起動時のエラー(Looks like something went wrong)のメモ

Dockerコンテナ内のUbuntuからapt-get出来なくなったので、「とりあえずDocker再インストールするか」と思い再インストール後にDocker Quick Start Terminalを起動しようとすると、表題のエラーが出て起動すらできなくなりました。何度Docker Toolboxをアン…

【Docker】基本コマンドのメモ

書籍「Docker入門」のChapter3-02で紹介されている、「まず覚えた方が良いサブコマンド」のメモです。 $ docker run イメージ名 ローカル環境に取得済みのイメージから新たなコンテナを作成して実行する。指定したイメージが無い場合、Docker Hubからイメー…

Eye Tracking The User Experienceのまとめ - Chapter11

データの可視化 グラフの種類 グラフの種類 対象 形式 データタイプ Gaze Plot / Scanpath 個人 静止画 空間/時間 Gaze Video 個人 動画 空間/時間 Bee Swarm 個人/集計 動画 空間/時間 Heatmap 集計 静止画 空間 Focus Map / Gaze Opacity Map 集計 静…

Eye Tracking The User Experienceのまとめ - Chapter9

テスト環境の構築 照明 照明がアイトラッカーに干渉しないことを確認しておく 白熱電球や太陽光は赤外光を含んでおりアイトラッカーの精度に影響を与える可能性がある 窓が無い、もしくはブラインドがあり、蛍光灯が使われている部屋がベスト 干渉 被験者の…

Eye Tracking The User Experienceのまとめ - Chapter10

データ分析までの手順 固視と見なす基準を決める AOIを決める 測定値を取り出す データクレンジングを行う データを分析する 固視を特定する方法 位置基準と速度基準がある 位置基準の場合、最大偏差(0.5~1.5°)、最小固視時間(70~100msec)を設定する …

Eye Tracking The User Experienceのまとめ - Chapter7

データの解釈は目的と見るものに依存する 「被験者がある対象物を長時間見ていた場合、それは何を意味するの?」と聞かれることがあるが、「何を何故見ていたのかによる」としか答えることができない 例えば「固視が発生した回数が多かった」という観察結果…

Eye Tracking The User Experienceのまとめ - Chapter5

アイトラッキングは全ての質問に答えれるわけではない… 行動に関する質問 被験者は正しいリンクを選んだ?被験者は冊子から必要な情報を見つけた? 容認に関する質問 被験者は新しいデザインは既存のデザインより改善されたと思っている?そしてその理由は何…

Eye Tracking The User Experienceのまとめ - Chapter4

質問を決めておく リサーチの目的から更に具体的な質問に落とし込んでおく必要がある 例1:ホームページのリニューアル 全体の目的 新しいウェブサイトがどのように改善できるか知りたい 考えられる質問 ユーザーはホームページを見ることでウェブサイトの…

【WPF】Ellipseの外側と内側に異なる透明度を指定する

WPFのEllipseの外側(Stroke)と内側(Fill)に異なる透明度を適用する方法をメモします。具体的には内側だけある透明度を適用したかったのですが、EllipseのOpacityを設定すると、StrokeもFillも透明になってしまいます。この問題はStrokeとFillに異なるBru…

【C#】 配列の中身ををシャッフルする

C#

using System.Linq; int[] array = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int[] shuffledArray = ary.OrderBy(i => Guid.NewGuid()).ToArray(); 参考サイト: 配列やコレクションをシャッフルする(ランダムに並び替える): .NET Tips: C#, VB.NET

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

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

Eye Tracking The User Experienceのまとめ - Chapter3

アイトラッカーのタイプ アイトラッカーにはリモートタイプとウェアラブルタイプがある リモートタイプは非接触で、被験者の前に固定して置かれる ウェアラブルタイプは被験者の頭に装着して使う リモート ウェアラブル セットアップ 被験者の前に固定して置…

Eye Tracking The User Experienceのまとめ - Chapter2

アイトラッキングすべきか判断するための3つの質問 アイトラッキングにより研究の目的に役立つ実用的な洞察が得られるか? 目的を達成するための手段としてアイトラッキングは一番単純な方法か? 研究は支援が必要か? 要は測定結果が次のアクションに繋が…

Eye Tracking The User Experienceのまとめ - Chapter1

眼の動きについて 眼は動く(サッカード)⇒止まる(固視)という動きを繰り返している サッカードは平均3-4回/s発生している 固視は0.1~0.5秒続く傾向がある 人がどこを見ているのか、に注目する理由 アイトラッカーは中心窩を捉えるだけで、ユーザーが周辺…

【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のConvolution2Dの引数border_modeについて

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

【Python】 KerasでXOR回路を作成する

Kerasを使ってXOR回路を作成するというのは実用性はありませんが、自分がKeras初心者のため「とにかく簡単なサンプルが欲しい」と思い作成しました。まず、XOR回路は下記のようになります。 ここでは入力に対して出力が下記表のようになるよう、図中のの値を…

【Python】 粒子群最適化法による最適化

粒子群最適化法による大域的最適化を行うクラスを実装します。粒子群最適化法は ハイパーパラメータが少ないので扱いやすい 単峰性が強い関数の最適化に向いている といった特徴を持っています。最適化問題は慣例として"目隠しした登山家が山の頂上をどうに…

【Python】 フォルダ内の特定のファイルを取得する

C#のDirectory.GetFilesに相当するPythonの関数を探したのでそのメモ。 フォルダ内のファイル名一覧を取得する import os files = os.listdir('Folder\\') for file_name in files: print(file_name) 実行結果例 a.txt b.txt c.txt d.docx フォルダ内のテキ…

【Python】 二つのリストの対応関係を保ったままシャッフルする

リストx=[1,2,3,4]があったとして、このxと対応関係にあるリストy=[11,12,13,14]があったとします。xをシャッフルしたいのですが、この時yも対応関係を保ったままシャッフルしたいと考えています。例えばリストxがシャッフルによりx=[3,2,4,1]となった場合、…

【OpenCV】 画像から特定パターンを探す

OpenCVの復習が必要になったのでメモしておきます。 // 画像を読み込む UMat source; imread("scene.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } UMat parts; imread("parts.jpg…

【OpenCV】 画像の類似度を調べる

OpenCVの復習が必要になったのでメモしておきます。 // 画像を読み込む Mat source1; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source1); if (source1.empty()) { throw runtime_error("Failed to open image"); } Mat source2; imread("lenna.…

【OpenCV】 動画を表示する

OpenCVの復習が必要になったのでメモしておきます。 // 動画を読み込む VideoCapture capture = VideoCapture("movie.mp4"); if (!capture.isOpened()) { throw runtime_error("Failed to open movie"); } // 動画表示用のウインドウを作成する const string…

【OpenCV】 パノラマ画像を作成する

OpenCVの復習が必要になったのでメモしておきます。 // 画像を読み込む UMat source1; imread("scene1.jpg", CV_LOAD_IMAGE_COLOR).copyTo(source1); if (source1.empty()) { throw runtime_error("Failed to open image"); } UMat source2; imread("scene2.…

【Python】 matplotlibの使用例

matplotlibの使用例をメモしておきます。月別の東京の平均気温を表示する例を示しています。平均気温を棒グラフや散布図を使って表すことは無いと思いますが、あくまでも使い方に焦点を当てているためご容赦下さい。 折れ線グラフ import numpy as np from m…

固有値、固有ベクトルのイメージ

行列をかけるとは 固有値、固有ベクトルの計算方法は確か高校の時に習ったような気がしますし、OpenCV等既存のライブラリを使っても簡単に計算出来ますが、その意味が良く分かっていなかったのでメモします。 まず、点に適当に作った行列をかけてみます。 $$…

【OpenCV】 特徴点検出を行う

OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source1; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source1); if (source1.empty()) { throw runtime_error("Failed to open image"); } // 画像を…

【OpenCV】 画像から顔を検出する

OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // 輝度平滑化…

【OpenCV】 画像のコーナーを検出する

OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // 画像のコー…

【OpenCV】 画像を合成する(論理積)

OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source1; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source1); if (source1.empty()) { throw runtime_error("Failed to open image"); } // 画像を…

【OpenCV】 画像を合成する(減算)

OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source1; imread("something1.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source1); if (source1.empty()) { throw runtime_error("Failed to open image"); } UMat …

【OpenCV】 画像を合成する(加算)

OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source1; imread("something1.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source1); if (source1.empty()) { throw runtime_error("Failed to open image"); } UMat …

【OpenCV】 画像に収縮処理を適用する

OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source; imread(argv[1], CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // 画像の収縮を行…

【OpenCV】 画像に膨張処理を適用する

OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source; imread(argv[1], CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // 画像の膨張を行…