投稿

9月, 2016の投稿を表示しています

CIFAR-100 をpngで出力

先日読み込んで見たけど今度はpng形式で出力してみた。 png出力先のパスに'train'と'test'ディレクトリを作成してそれぞれの画像を出力する。 import os , pickle from PIL import Image class Cifar100: topdirname = 'cifar-100-python' width , height = 32 , 32 def __init__ ( self , extractedpath): dirpath = os.path.join(extractedpath , Cifar100.topdirname) with open (os.path.join(dirpath , 'meta' ) , 'rb' ) as fp: self .meta = pickle.load(fp) with open (os.path.join(dirpath , 'train' ) , 'rb' ) as fp: self .train = pickle.load(fp , encoding = 'latin-1' ) with open (os.path.join(dirpath , 'test' ) , 'rb' ) as fp: self .test = pickle.load(fp , encoding = 'latin-1' ) def _out_images( self , path , data , filename): for (d , f) in zip (data , filename): im = Image.new( 'RGB' , (Cifar100.width , Cifar100.height) , ( 0xff , 0xff , 0xff )) putd

Windowsブートローダを利用したUbuntuデュアルブート環境構築

イメージ
普段使いのノートPC Dell XPS13 9350 Windows10機にUbuntu16.04をWindowsのブートローダを利用してデュアルブート可能となるようインストールしてみた。 普段はOfficeを利用するのでWindowsが必須だけども、TensorFlowを利用するにはLinux環境が必要で、VirtualBoxで仮想化したり、Bash on Windowsにインストールもしてみたが、どうも使いづらく。 Ubuntuをそのままインストールしてもデュアルブート環境構築できてしまうのだが、そうするとgrubというブートローダが利用されてしまい、後でUbuntuをアンインストールした時にWindowsが起動しなくなるのが面倒と思ったので、Windowsのブートローダを利用するように構築した。 大まかな手順は以下。 1.Ubuntu用領域の確保 2.Ubuntuインストール 3.Ubuntu用のMBRを取得 4.Windowsブートローダ設定 1.Ubuntu用領域の確保 ディスクの余剰領域はなかったのでUbuntu用の領域を空ける(既存パーティションの縮小)必要があった。 「ディスクの管理」でもパーティション操作はできるけど、移動できないファイルがあるため既存の領域縮小がうまくできず(50GB位空きがあるのに2GBしか縮小できず)。 そこで「EaseUS Partition Master」(フリー版)を使用。今回は領域の末尾に約30GBを確保。 (Ubuntuインストール後の画面ショットなので作成時と表示が少し異なる) 2.Ubuntuインストール インストーラ(isoファイル)は ホームページ からダウンロード。 メディアに焼くかブータブルUSBを作成してインストール。 注意する点は、インストール時の設定「ブートローダをインストールするデバイス」をUbuntuインストール先に変更する必要あり。↓の場合は「/dev/nvme0n1p5」を指定。 3.Ubuntu用のMBRを取得 Linuxのddコマンドを使って MBR(マスターブートレコード) を取得。 ここまでの手順ではUbuntuを起動できないので、Ubuntuインストーラをインストールしないで使用するモードでUbuntuを立ち上げてd

CIFAR-100 を読み込む

データセット公開ページ には"I won't waste space describing them here"とそっけない記述があるのみだったので調べながら読み込んでみた。 参考にしたページは ココ と ココ 。 CIFAR-100 python version はダウンロードして解凍しておく。 読み込んだあとにファイル名とタグを一覧表示している。 import os , pickle class ReadCifar100 : topdirname = 'cifar-100-python' def __init__ ( self , extractedpath): dirpath = os.path.join(extractedpath , ReadCifar100.topdirname) with open (os.path.join(dirpath , 'meta' ) , 'rb' ) as fp: self .meta = pickle.load(fp) self .fine_label_names = self .meta[ 'fine_label_names' ] self .coarse_label_names = self .meta[ 'coarse_label_names' ] with open (os.path.join(dirpath , 'train' ) , 'rb' ) as fp: self .train = pickle.load(fp , encoding = 'latin-1' ) self .traincount = self .train[ 'data' ].shape[ 0 ] with open (os.path.join(dirpath , 'test' ) , 'rb' ) as fp:

UbuntuでTensorflow環境構築

まずは何かと使うブラウザをインストール > sudo apt-get install chromium-browser パッケージ管理のpipをインストール > sudo apt-get install python3-pip 使いそうなPythonライブラリをインストール > sudo pip3 install numpy scipy matplotlib scikit-learn Tensorflowをインストール(公式ページの手順そのまま) > export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.10.0-cp35-cp35m-linux_x86_64.whl > sudo pip3 install --upgrade $TF_BINARY_URL > wget https://download.jetbrains.com/python/pycharm-community-2016.2.3.tar.gz > tar xvf pycharm-community-2016.2.3.tar.gz > ./pycharm-community-2016.2.3/bin/pycharm.sh インストールオプションにもよるが以下で起動 > charm ところが、サンプルコードを実行したら以下エラーが。 ImportError: libcudart.so.7.5: cannot open shared object file: No such file or directory ググッて見ると間違えてgpu用のTensorflowをインストールしてしまっていたようだ。 確かにgpuという文字列が見える。 Tensorflowを一旦アンインストール > sudo pip3 uninstall tensorflow もう一度cpu版をインストール > export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.10.0-cp35-cp

bash on Windowsでscipyとmatplotlibをpipでインストール

手こずったのでメモ。 ・scipyのインストール ここ を参考にした > sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran > sudo pip3 install scipy blasとかlapack等の線形代数ライブラリを必要とするようで、 関連パッケージを先にインストールしておかないとインストールできない。 ・matplotlibインストール ここ と ここ を参考にした。 > sudo apt-get install libfreetype6-dev libpng12-dev pkg-config > sudo pip3 install matplotlib > sudo apt-get install libffi-dev > sudo pip3 install cairocffi 最初インストールを試みたときに以下が表示された。 ======                         * The following required packages can not be built:                         * freetype png ------ ので、関連パッケージlibfreetype6-devとlibpng12-devをapt-getするもまだfreetypeの方がビルドできないと怒られる。 ググると上のサイトを発見し、バグのせいでpkg-configも入れないといけないということで。 しかしながらまだ駄目で、import時にエラーが出る。 ということで3行目と4行目が必要になるとのこと。 # で、実際に描画してみるとグラフが表示されないんだよな。。。

【備忘メモ】 bash on windows で Firefox

以下の通りパッケージをインストール > sudo apt-get install firefox > sudo apt-get install fonts-ipafont-gothic 日本語が表示されないのでIPAのフォントをインストールした。 でも入力ができない、、、ibus-anthyっての入れてみたがうまくいかず(試行錯誤中)。

Pokemon go しあわせタマゴを使うタイミング

しあわせタマゴ・・・30分の間、経験値を2倍もらえる。 使用直後にポケモンの進化(+500XP)を多く実行すると効率的に経験値を稼げる。 では30分で何回位進化できるのか。 事前にどれだけ用意しておいたら良いのか。 試してみたら大体70回位。 素早く操作したらもう少し回数増やせるかもしれない。

matplotlib 初歩的な使い方

イメージ
またにしか使わず、すぐ忘れてしまうので備忘メモ。 目次 グラフ(log(x))を表示(線) グラフ(log(x))を表示(点) ラベルを設定 表示範囲を指定 補助線、目盛りの表示 グリッドの表示 凡例を表示 分割表示 グラフ(log(x))を表示(線) import numpy as np import matplotlib.pyplot as plt def main (): x = np.arange(- 10 , 10 , 0.1 ) plt.plot(x , np.log(x)) plt.show() if __name__ == '__main__' : main() グラフ(log(x))を表示(点) import numpy as np import matplotlib.pyplot as plt def main (): x = np.arange(- 10 , 10 , 0.1 ) plt.scatter(x , np.log(x)) plt.show() if __name__ == '__main__' : main() ラベルを設定 import numpy as np import matplotlib.pyplot as plt def main (): x = np.arange(- 10 , 10 , 0.1 ) plt.plot(x , np.log(x)) plt.title( 'y = log(x)' ) plt.xlabel( 'x' ) plt.ylabel( 'y' ) plt.show() if __name__ == '__main__' : main() 表示範囲を指定 import numpy as np import matplotlib.pyplot as plt def main (): x = np.arange(- 10 , 10 , 0.1 ) plt.pl