紙媒体で管理するとなくなりがちなのでブログで進捗などを管理することにしました
※殆どの記事は自分自身のためだけにかいています.他人に見せられるレベルには至っていません...

画像形式変換

ディレクトリ内のJPGファイルをPNGファイルに一括変換する.

# ディレクトリ内のJPGファイルを探す
find ./ -name "*.jpg"
# ディレクトリ内のJPGファイルの個数を数える
find ./ -name "*.jpg" | wc -l
# JPGファイルをPNGに変換する
for filename in *.jpg;do convert "$filename" "${filename%.jpg}.png";done
広告を非表示にする

【メモ】GANについて

現在GitHubでGANについてまとめてあるリポジトリをまとめた.

YadiraF/GAN

各種GANについてpaper, blog, codeが掲載されている.

  • GAN
  • DEGAN
  • Conditional GAN
  • Wasserstein GAN
  • Info GAN

github.com

jhayes14/GAN

GANについての概要が掲載されている.
日本語訳

GANとは何ですか?
GANは、データセットの基礎となる分布を発見し、人工的に生成する方法です。監督されていない表現学習の分野における方法。最も一般的には、画像生成タスクに適用されます。
GANは、Discriminator(D)とGenerator(G)という2つのニューラルネットワークを組み合わせています。
与えられたデータセットでは、Gは入力としてランダムノイズを取り、データセット内のアイテムに似たものを生成しようとします。 
Dは、実データセット内の項目とGによって生成された人工データの両方の項目を入力として取り込み、2つの項目の間を引き離そうとします。
 GとDは共同して訓練される。重要な点は、GとDはお互いのバランスをとる必要があり、
どちらも互いの仕事に関してあまりにも強くならないことです。
もし、GがフーリングDで非常に良くなるなら、これは通常、Gが分布内の重要な特徴と一致しないDの分類プロセスの弱点を発見したためである。 
Dが人工画像を実際の画像と簡単に区別できるのであれば、Gの重みを正しい方向に更新することは非常に遅いプロセスであり、
本質的にGはこのプロセスから学ぶことができません。

github.com

carpedm20/DCGAN-tensorflow

「画像を生成するやつ」として知られるやつ
Qiitaにアイドルの顔や, ドット絵のキャラを生成するような記事があった気がする.
github.com

hindupuravinash/the-gan-zoo

リポジトリ名の「GANの動物園」の通り, たくさんの種類のGANについて, 元になったArXivの記事を掲載している.
github.com

zhangqianhui/AdversarialNetsPapers

目的(適応先) ごとにまとめてある.
github.com

dongb5/GAN-Timeline

GANについての論文を掲載している.
github.com

eriklindernoren/Keras-GAN

github.com

wiseodd/generative-models

github.com

その他GANについて100favを超えるリポジトリ

https://github.com/mingyuliutw/UNIT
https://github.com/awjuliani/TF-Tutorials
https://github.com/carpedm20/DiscoGAN-pytorch
https://github.com/vanhuyz/CycleGAN-TensorFlow
https://github.com/Zardinality/WGAN-tensorflow
https://github.com/junyanz/iGAN
https://github.com/burness/tensorflow-101
https://github.com/shekkizh/WassersteinGAN.tensorflow
https://github.com/openai/improved-gan
https://github.com/martinarjovsky/WassersteinGAN
https://github.com/yunjey/StarGAN
https://github.com/bernhard2202/improved-video-gan
https://github.com/LantaoYu/SeqGAN
https://github.com/zsdonghao/text-to-image
https://github.com/carpedm20/BEGAN-tensorflow
https://github.com/hanzhanggit/StackGAN
https://github.com/devnag/pytorch-generative-adversarial-networks
https://github.com/jonbruner/generative-adversarial-networks
https://github.com/makegirlsmoe/makegirlsmoe_web
https://github.com/openai/InfoGAN
https://github.com/tjwei/GANotebooks
https://github.com/NELSONZHAO/zhihu
https://github.com/fxia22/PixelDTGAN
https://github.com/bastianallgeier/gantti
https://github.com/sjchoi86/advanced-tensorflow
https://github.com/AYLIEN/gan-intro
https://github.com/osh/KerasGAN
https://github.com/255BITS/HyperGAN
https://github.com/phillipi/pix2pix
https://github.com/KupynOrest/DeblurGAN
https://github.com/jacobgil/keras-dcgan
https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
https://github.com/SKTBrain/DiscoGAN
https://github.com/shaoanlu/faceswap-GAN
https://github.com/tensorlayer/dcgan

広告を非表示にする

【振り返り】2018.01.28(月) - 2018.02.04(日)

JEBのライセンス切れた

JEBのライセンスが切れて使えなくなった.
卒論前に逆コンパイル出来なくてきつかった.



卒論提出した

卒論提出した. がんばった.



これは後にわかったけど, TeXworksでコンパイル途中で遮断するとErrorページの赤い部分消したら治った.






皆既月食

卒論で眠くて見なかったけど皆既月食があったらしい


理科大のミス候補からリプ貰えた


少し雪が降った

前回の雪から1周間くらいで少し雪が降った.
前回ほど積もらなかったけど, 少し白くなった.
卒検発表の練習したあと多摩川まで散歩した



気になったツイート








































【振り返り】2018.01.22(月) - 2018.01.28(日)

雪が降った





ストレス




古本市





GAMの試合

ADCなんていらないんだ



卒論




















ブログのアクセス数



気になったツイート






















【振り返り】2018.01.14(日) - 2018.01.23(火)

センター試験

卒論まで2週間になったのにセンター試験で大学が閉鎖.


AGC

AGCでtouristが作問したらしい. 参加しはいないけど, 競プロも参加していきたい.


メモリ増設

1月になって始めて人権を得られた. もう遅いよ.



卒論書いた

付録書いた.


GitHub充実させたい


JadX導入

bytecode解読のため, jadxを導入した.
従来の自分の方法より高速で素晴らしかった.


jebっていうAndroidのデコンパイラ無償版使ったけど, かなり良かった.
apktoolのguiコンパイラも良かったけど, こっちも良かった.
有料版にすると, デコンパイルしたDalvikコードが保存できる感じだったので有料版欲しいと思った.

vscodeTeX

vscodeでPDF表示できるのね.



卒論の付録の表作った




卒論終わったら


卒論実験

実験すら出来てなかったけど, 機械学習で結果出すまで出来た.
まじでこの一週間は疲れた.







雪降った






興味を持ったツイート























【Python】matplotlibで最低限のグラフをかけるようにする

TeXで表示させるため, グラフが必要な時期になってきた.
Pythonで最低限のグラフを描画する方法をメモ.
sigmoid関数のプロット

import numpy as np
import matplotlib.pyplot as plt

# 関数定義
x = np.linspace(-8, 8, 100)
y = 1/ (1+np.exp(-x))

# 垂直線
plt.vlines(0.0, -0.1, 1.1, colors="r", linestyle="dotted", label="")
# 水平線
plt.hlines(0.0, -8.0, 8.0, colors="k", linestyle="dotted", label="")
plt.hlines(0.5, -8.0, 8.0, colors="k", linestyle="dotted", label="")
plt.hlines(1.0, -8.0, 8.0, colors="k", linestyle="dotted", label="")

# sigmoid 関数
plt.plot(x, y, label="sigmoid function")

# y軸の設定
yticks = [0,0.5,1.0]
plt.yticks(yticks)

# 軸の名称
plt.xlabel(r"z")
plt.ylabel(r"$\phi(z)$")

# 凡例
plt.legend(loc="upper left")

# 図の保存
plt.savefig("./sigmoid.png")
plt.show()

f:id:umashika5555:20180122130503j:plain
TeXファイルに貼り付ける場合は, .epsにしておく必要がある場合がある.
convert コマンドでファイルの種類を変更する.

$ convert sigmoid.png sigmoid.eps

【メモ】TinyXML

ある処理でPythonXML扱うモジュール使ってたんだけど, さっき見た論文でTinyXMLを使うと書いてあった.
本質ではないけど, そういうツールがあることを知らなかったのでメモしておく.

広告を非表示にする

来年度の目標メモ

2018年になり約20日, 現在卒論に追われていて精神的にかなりキツイ.
本日も徹夜し現在朝8時, ようやく寝ようとしている.
スマホを片手に来年度の目標を書く. 来年度は休学しようと思っているので, 時間が出来そう. やりたいことをまとめる. 

ディープラーニング理論

ディープラーニングの理論を数学的に、またフルスクラッチ実装することでブラックボックスを少しでも解明していきたい. 現在主流ではない数値微分による方法なども敢えて実装し性能比較を行ってみたい. Courseraとかも興味はある.

ディープラーニング応用

ArXivの記事を一日一本は(精読でなくてもよいので)読みたい. 気になった方法はgit cloneして試してみたい. 独自のアニメデータセットなども利用してネタになったらQiitaなどに投稿したい. 

機械学習 / 統計理論

機械学習の有名手法のフルスクラッチ実装, また自分は統計学を蔑ろにしてきたので統計学についても本を読み漁りたい. また自分の畑を広げるという意味で解析や確率論, 統計力学などもできたらやりたい.

機械学習 / 統計応用

やっぱり, これに関してはkaggleに参加する事が一番だと思う. 今年は少ししか参加できなかったけど, 結構慣れてきたので来年はもっと参加したい. Kernelを読んで芸術的な可視化や特徴量抽出についても学んでいきたい.

新しい言語を学ぶ

研究を一年間やってきてPythonに対する嫌悪感が凄くなった. もちろん機械学習に関してはscikit-learnやkerasといった素晴らしいライブラリがあるのでそこは継続して使いたいと思うが, 事務処理などで使うと遅いし途中で止まる可能性あるし, 何より書きづらいしであの忌み嫌っていたC言語でさえ愛おしくなってしまった. なにやら最近はrustやgoといった言語が流行っているらしいので勉強して見る価値は大いにありそう. 

ソフトウェア工学

これも研究を通して思ったのだが自分のコードがクソすぎて決まった規格がほしいと思った. コードに関する規約について勉強する必要がある. コードコンプリートを読みたい.

コンパイラ作る

AndroidのDalvik Bytecodeが少し読めるようになってきたので, まずレジスタなどをより理解し, デコンパイラや制御フローグラフなどを作るツールをつくりたい. 

広告を非表示にする

【Python】 pythonからshellの実行

Pythonからshellコマンドを実行する際に以下のようなやり方がある.
今回は次のshellコマンドをpythonで実行するやり方を比較する.

$sha256sum hoge.zip
#返り値:  xxxxxxxxxxx hoge.zip

os.system()を使う方法

import os
file_name = "hoge.zip"
os.system('sha256sum "{}"'.format(file_name))
# 成功
# xxxxxxxxxxx hoge.zip
# 0
# 失敗
# sha256sum: hoge.zip : No such file or directory
# 256

成功したか失敗したかのみしかわからない.
コマンドの出力が受け取れないし, 推奨されていないやり方らしい.

subprocess.check_output()を使う方法

import subprocess
file_name = "hoge.zip"
args = ["sha256sum", file_name]
subprocess.check_output(args)
# 成功
# b'16e3a87f14dce201f90dc0f7dd2a6318e7b9e5aef095e5815123c3a44e92ac97  GA_result.txt\n'
# 失敗
# sha256sum: hoge.zip : No such file or directory
#Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
#  File ".pyenv/versions/3.5.4/lib/python3.5/subprocess.py", line 316, in check_output  **kwargs).stdout
#  File ".pyenv/versions/3.5.4/lib/python3.5/subprocess.py", line 398, in run output=stdout, stderr=stderr)
# subprocess.CalledProcessError: Command '['sha256sum', 'GA_result1.txt']' returned non-zero exit status 1

成功した場合, 返り値はbyte型なのでstr型にdecodeし, pythonコード内でshellの出力結果を得ることができる.

res = subprocess.check_output(args)
hash_value = res.decode("utf-8").split(" ")[0]

ただし, windowsの場合はうまく行かない可能性がある. 原因はまだ良く見てない.

commands.getstatusoutput()を使う方法

昔よく使っていたが, Python3 で廃止されたらしい.
これの代用がsubprocessモジュールになったらしい.

【TeX】 ページを跨いで表を表示する

longtable.styを使う

\newcolumntype{A}{>{\raggedright}p{0.3cm}}
\newcolumntype{N}{>{\raggedright}p{3.6cm}}
\newcolumntype{D}{>{\raggedright}p{10.0cm}}
{\footnotesize
\begin{longtable}[c]{|A|N|D|}
\hline
No & permission-name & Description \tabularnewline \hline
\endfirsthead
0  & \verb|ACCESS_CHECKIN_PROPERTIES| & Allows read/write access to the "properties" table in the checkin database, to change values that get uploaded.\tabularnewline \hline
1  & \verb|ACCESS_COARSE_LOCATION| & Allows an app to access approximate location. \tabularnewline \hline
2  & \verb|ACCESS_FINE_LOCATION| & Allows an app to access precise location.\tabularnewline \hline
3  & \verb|ACCESS_LOCATION_|\\ \verb|EXTRA_COMMANDS| & Allows an application to access extra location provider commands. \tabularnewline \hline
\end{longtable}
}

f:id:umashika5555:20180118020916p:plain

【参考】
http://www.biwako.shiga-u.ac.jp/sensei/kumazawa/tex/longtable.html
https://ctan.org/pkg/longtable