多層パーセプトロンを実装した

研究室に配属されたはいいけども,特にやることもなくて暇だったりします. 論文を読んだりするのもいいけど,やっぱり手を動かして何かをしないとつまらないなぁという感情の芽生えを感じたので, 最近はGrahamさんのチュートリアルをやったりしています.

Graham Neubig - チュートリアル資料

この資料のニューラルネットのあたりまでやってみて,自分で多層パーセプトロンを実装するところまでいきました↓

チュートリアルから作った多層パーセプトロン

このコードですが,層の数を決め打ちしていたり,バイアス項の取り扱いができていなかったり,そもそもコードが全然coolじゃないです.

なので,インターネッツに漂うコードを参考にして書き直したのが以下のやつです.

多層パーセプトロンの実装例

参考にしたのは:

のあたり.というかほとんどパクってるのでは…

バイアスの取り扱いについては最初のリンクを,全体的なコードの構成(レイヤーをクラスに分割するなど)は最後のリンクを参考にしました.

次はChainerで実装してみよう…

QuiverのVimモードを快適にする (ついでにJupyterも)

はじめに

Quiver,便利ですよね.

QuiverのVimモードで日本語入力してる時に,Escキーを押してノーマルモードにしても,jkhlで移動できなくて「ウワアアアアア!!!!!」ってストレスがマッハになることはありませんか?ぼくはあります.

ついでに,Jupyter notebookのVimプラグインで日本語入力してるときに,同様の問題があったりしませんか?ぼくはあります.

ということで,直しましょう.Karabinerで.

どゆこと?

Karabinerのprivate.xmlを編集して,EscをEsc+英数キーにマッピングすることをします.そういうことです.

dackdive.hateblo.jp

こういう記事でやってることを,QuiverとかChromeにも適用しようというわけです.

実際に書いたprivate.xmlがこちら:

<?xml version="1.0"?>
<root>
    <appdef>
        <appname>QUIVER</appname>
        <equal>com.happenapps.Quiver</equal>
    </appdef>
    <appdef>
        <appname>CHROME</appname>
        <equal>com.google.Chrome</equal>
    </appdef>
    <list>
        <item>
            <name>LeaveInsMode with EISUU(Quiver)</name>
            <identifier>private.app_quiver_esc_with_eisuu</identifier>
            <only>QUIVER,CHROME</only>
            <autogen>__KeyToKey__ KeyCode::ESCAPE, KeyCode::ESCAPE, KeyCode::JIS_EISUU</autogen>
            <autogen>__KeyToKey__ KeyCode::BRACKET_LEFT, VK_CONTROL, KeyCode::BRACKET_LEFT, VK_CONTROL, KeyCode::JIS_EISUU</autogen>
        </item>
    </list>
</root>

これでおわり!

Office 2016なPowerPointのマスタースライドとかフォント周りのメモ

概要

アルファベットにはAvenir Nextを使いたいけど,日本語にはヒラギノ角ゴを使いたい

そんなあなたのためのメモ

やり方

普通にPowerPointのマスタースライドからいじれるかと思いきや,新しい設定を追加するボタンがないんですね.

f:id:h_nitoliam:20160322213405p:plain

(ここからでは編集できません)

というわけで,自分でxmlファイルを書いて,しかるべき場所に置いてやる作業が必要になります.

面倒ですよね? 僕も面倒でした.

PowerPoint用のフォントxml

こんな感じのxmlを書いて,それを

/Users/(ユーザ名)/Library/Group Containers/UBF8T346G9.Office/User Content/Themes/Theme Fonts

にコピーすればいけます.

別のフォントが使いたければ別のフォントを指定してやれば良いでしょう.

sanographix.github.io

このイケイケなテンプレートがAvenir Nextとヒラギノ角ゴを推してたので,僕もとりあえずそれです.

zshの起動にかかる時間を短縮した

zshの起動時間

短縮しました

とりあえず

最初の起動時間がこんなかんじ

gyazo.com

いやあ,遅いですね…

ちなみにtime (zsh -i -c exit)とすれば計測ができます.

まずプロファイリングだ

yukidarake.hateblo.jp

この記事に従って設定して,ボトルネックになってる部分を確かめたところ,以下のようになりました.

gyazo.com

画像見る限り:

  • Virtualenvwrapper
  • compinit
  • zplug

が時間を食ってるらしいということがわかりました.

それでは直していきましょう.

Virtualenvwrapper

公式サイトを眺めたところ,lazy loadingを設定すれば起動時間を短縮できるらしいので,そのようにしました.

具体的には: source /usr/local/bin/virtualenvwrapper.shの代わりにsource /usr/local/bin/virtualenvwrapper_lazy.shを設定しました.

この設定を使う場合,起動時にのみ仮想環境名の補完が効かないなどの問題が出てくるらしいですが,仕方ないですね.

compinit

compinit -cを設定しました.

zplug

これはzplugが悪いというよりも,zplugでロードしているoh-my-zshのthemeが悪いと思われます.

なので,oh-my-zshを完全に諦めて,新しいthemeを使うようにしました.

github.com

非常にシンプルかつかわいいかつ必要十分なのでこれでいいと思います.

これらの設定をした結果

gyazo.com

やったぜ.

iTunesライブラリからワードクラウド作るスクリプトを改良した

parse_iTunes_XML.py · GitHub

Podcastの例外処理を書くのを忘れていて,Podcastの配信者の名前がワードクラウドに表示されてしまうのを直しました.

PATHがおかしい→解決した

何の気なしにwhere pythonしてみたら: f:id:h_nitoliam:20160208180512p:plain

なんかやばいことになってる…

.zshrcを確認してみたら

# sudo用のpathを設定
typeset -xT SUDO_PATH sudo_path
typeset -U sudo_path
sudo_path=({/usr/local,/usr,}/sbin(N-/))
path=(~/bin(N-/) /usr/local/bin(N-/) ${path})
export PATH

こういういかにもやばそうな箇所があったので,消したら解決しました. 重複pathを防ぐための設定まわりでやらかしていたと思われます.

なぜかはわかりませんごめんなさい.

ネットで拾った設定のコピペは本当によくないですね.

Finderでもjkhlが使いたい! ならKarabinerだ.

Finderでもjkhlで移動したい

使いたいときってありますよね? それ,Karabinerでできますよ.

Karabinerの設定画面で: f:id:h_nitoliam:20160122164448p:plain これをONにすればOK!

実は

思いっきり公式サイトの一例に載ってた…↓

便利な既存の設定の一例 - Karabiner - OS X用のソフトウェア