ChainerでMNISTを試す

ChainerでMNISTのサンプルコードを試しました。

参考:pfnet/chainer

Chainerをインストール

$ pip install chainer

サンプルコードを動かす

chainer/examples/mnistのディレクトリにMNISTのサンプルコードがあります。学習時間は15分程度でした。

$ python train_ptb.py
GPU: -1
# unit: 1000
# Minibatch-size: 100
# epoch: 20

Downloading from http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz...
Downloading from http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz...
Downloading from http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz...
Downloading from http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz...
epoch       main/loss   validation/main/loss  main/accuracy  validation/main/accuracy  elapsed_time
1           0.191542    0.090873              0.944033       0.9713                    50.9736       
2           0.0741329   0.0754302             0.976317       0.9765                    99.1206       
3           0.0467661   0.0721968             0.985067       0.9797                    161.049       
4           0.0359696   0.0728168             0.988083       0.978                     209.989       
5           0.0290916   0.0821801             0.9904         0.977                     261.491       
6           0.0242685   0.0734186             0.9921         0.9806                    311.869       
7           0.0202083   0.0895192             0.993467       0.9795                    360.346       
8           0.0173684   0.0807823             0.9944         0.9785                    407.156       
9           0.0185823   0.0856489             0.994          0.9792                    456.174       
10          0.0167096   0.0783728             0.9947         0.9797                    506.884       
11          0.0103569   0.095445              0.9968         0.9797                    556.816       
12          0.0153957   0.0862309             0.995267       0.982                     605.577       
13          0.00907149  0.104247              0.9972         0.9803                    653.676       
14          0.013558    0.0988746             0.995767       0.9794                    708.906       
15          0.0123224   0.0865951             0.99605        0.9825                    762.177       
16          0.0102555   0.0927854             0.99725        0.982                     815.14        
17          0.0100652   0.094853              0.996733       0.9805                    877.995       
18          0.00979173  0.0833932             0.997183       0.9849                    932.327       
19          0.00768291  0.116505              0.997767       0.9801                    992.164       
20          0.00946933  0.100418              0.9974         0.9836                    1054.31   

学習が終わるとresultディレクトリの中に学習結果のデータが作成されます。

f:id:tsyknsr:20170201224257p:plain

f:id:tsyknsr:20170201224313p:plain

accuracyが精度、lossが誤差を表しています。学習回数が増す毎に数値が改善されています。(グラフの読み方は勉強中です。)

まとめ

MNISTのサンプルコードを試すことができました。このあとは、コードの中身をチラ見したり、他に用意されているサンプルを試しながら、少しずつ自分でもコードを書けるようになればと思います。

参考

CapistranoでPermission denied (publickey)が出た時の対処

Capistranoでdeploy:check時にPermission denied (publickey)のエラーが出た時の対処法メモ。

原因

デプロイ先のサーバーで秘密鍵・公開鍵の作成管理が行われていないため、デプロイ先のサーバーからgithubに接続できない。

対応

ssh agent forwardingを利用。

参考:capistrano3でssh agent forwarding

エラー内容の確認

$ bundle exec cap staging deploy:check
(略)
git:check
01 git ls-remote --heads git@github.com:hoge/huga.git
01 Permission denied (publickey).
01 fatal: Could not read from remote repository.
01
01 Please make sure you have the correct access rights
01 and the repository exists.

ssh-agentに登録されている鍵の確認

$ ssh-add -l
The agent has no identities.

ssh-agentに鍵を登録

$ ssh-add ~/.ssh/huga.pem
$ ssh-add -l
2048 (略) /Users/hoge/.ssh/huga.pem (RSA)

参考

Rails5で日本語化

Rails5で日本語化する時のメモ。

./config/application.rb

# Application configuration should go into files in config/initializers

initializers以下の設定に変わったようです。設定は下記のissueを参考にしました。

https://github.com/rails/rails/issues/25398

Rails5で日本語化の設定

./config/initializers/locale.rb

I18n.config.available_locales = :ja
I18n.default_locale = :ja

日本語訳ファイルをダウンロード

共通

https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ja.yml

devise

https://gist.github.com/yhara/606476

参考

フリーランスエンジニア3年目の2016年振り返り

フリーランスエンジニアとして3年目の2016年の振り返りです。

個人開発

尊敬するエンジニアの方が主催したシードアクセラレータープログラムに参加しました。残念ながら、そこで開発したサービスから話が発展することはなかったのですが、サービスの企画検討からリリースまでを担当できたことは大きな経験となりました。今回は無償で友達にも手伝ってもらったのですが、次回また何かをつくる機会があったら、多少なりお金を払うことができて本人の実績としても残してもらえるような環境作りが必要だと感じました。サービスのコンセプトが弱かったり、運用体制に持続性がなかったりなど、リリース後に発生する課題への見通しの甘さも反省点でした。その他にも、サービス開発からペライチのサイトまで大小合わせて今年は10~15程度の個人開発を行いました。なるべく多く試す機会をつくるために、機能を使いまわせるように整理したり、有料テンプレートを導入するなど工夫をしました。簡単に試したい場合は、facebookページやinstagramを使いました。

情報収集

海外でサービスをつくる可能性を探るために伸びしろの大きい東南アジアを中心に海外を見て回りました。今年は、タイ・インドネシア・中国に行きました。タイ・中国は想像していたよりも完成されていましたが、インドネシアは荒い部分が多く残っていたり物価も他の国に比べると安い印象だったので、個人でも何かできるかもしれないという可能性を感じました。滞在中は回線速度を測ったり、街の主要な位置関係を調べたり、スマートフォン専門のモールで市場調査を行うなどしました。帰国後に物件の相場を調べたり、現地の言語で簡単なペライチのサイトをつくってアクセスが来るかなどを試しました。渡航費用は、LCCの深夜便やエクスペディアのセールを利用することで多少なり抑えることができました。

業務委託

常駐やリモートなどでいくつかの案件に携わりました。これまで雰囲気の良い現場しか経験したことがなかったのですが、今年初めて困難な現場に当たりました。忙しさよりもコミュニケーションの部分でストレスの負荷が高すぎて、最後の方は手足が痺れるなど健康状態に影響が出ていました。今後はあまりに困難な環境の場合は早めに現場から離れる判断を心がけようと思いました。
明るい話では、某企業のCTOの方から直接声をかけていただき継続的に開発に参画させていただくお付き合いも生まれました。

仕事場

今年から渋谷近辺に仕事場を借りました。移動時間を短縮できたので自由な時間が多く生まれて1日の開発時間も増えました。都心に出やすくなったので勉強会や仕事関係の飲み会などフットワークも軽く動けるようになりました。最初に書いたシードアクセラレータープログラムも、物理的な距離の近さで参加を承認された部分もあるのではないかと思います。 また、お誘いを受ける機会も増えました。「ちょっとお茶しませんか?」の流れから仕事の話になり、そのまま案件のご相談を頂くこともありました。

2017年に向けて

2016年は個人的に多くのチャレンジをしましたが、得るものは大きくても成果につなげることが出来ませんでした。来年は何かしらの方法で成果を出して結果を残したいと思います。今年は「日本にあって海外にないもの」という視点から海外でのサービス展開を視野に入れて東南アジアを見て回りました。2017年は「海外にあって日本にないもの」という視点からヨーロッパなどの先進国から日本に取り入れることができるサービスや仕組みを探してみようかと考えています。東南アジアの国を複数回る中で、中心地の空気はどこも似ているように感じましたが、中心から離れた地方エリアは国ごとの特色が強いように感じました。同じように日本でも地方のほうが日本らしい何かがあるのではないかと思い、2017年は国内で地方を中心に見て回ることも検討しています。
業務委託・受託案件については、広げていくことよりも既にあるお付き合いを大事にしていきたいと考えています。全体的に密度が上がるような年になればと思います。

フリーランスの引っ越しで住所変更した場合の手続き

フリーランスの引っ越しで住所変更した場合の手続きメモ。

必要な手続き

事業を継続する前提で引っ越しした場合は「所得税・消費税の納税地の異動に関する届出書」を引越し前・引っ越し先の税務署にそれぞれ提出。

[手続名]所得税・消費税の納税地の異動に関する届出手続|申告所得税関係|国税庁

注意

検索すると「開廃業手続きの提出」についても言及している記事がいくつかありましたが、廃業手続きすると1年間青色申告を使えないという指摘を税務署の方から受けました。当初は、「引越し前の税務署で廃業手続き・引越し先の税務署で開業手続き」で考えていましたが、上記の「納税地の異動手続き」に修正しました。

まとめ

税務署に確認する。

OANDA APIで現在のレートを取得

練習用にOANDA APIEUR/USDの現在のレートを取得します。

Sandbox

開発ガイドを読むとsandbox環境は認証が必要ないので最初にこちらで実行しました。

開発ガイド | OANDA API

$ curl -i "http://api-sandbox.oanda.com/v1/prices?instruments=EUR_USD"
curl: (52) Empty reply from server

時間を置いて何度か試したのですが、正常な動作を確認できませんでした。開発ガイドにもsandboxは動作が不安定で時々使用不可能になると書いてあるので「fxTrade Practice」と記載されている別の環境で試します。

fxTrade Practice

pythonAPIラッパーに、先日取得したアクセストークンを使用して再度試しました。 今回は用意されているサンプルコードをそのまま利用しました。

GitHub - oanda/oandapy: Python wrapper for the OANDA REST API

$ pip install git+https://github.com/oanda/oandapy.git
  import oandapy 

  oanda = oandapy.API(environment="practice", access_token="YOUR_ACCESS_TOKEN") 

  response = oanda.get_prices(instruments="EUR_USD") 
  print(response)
$ python example.py
{'prices': [{'instrument': 'EUR_USD', 'bid': 1.06354, 'time': '2016-12-13T03:39:26.222056Z', 'ask': 1.06359}]}

無事に動作を確認することができました。

参考

2016年に買って良かったもの10選

2016年に買ってよかったものをまとめました。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

文系出身の自分にもディープラーニングの概念を理解できるくらい解説が丁寧で分かりやすい本でした。読み込むには数学の知識が乏しかったため、この本を読んだあとに数学の勉強をはじめました。

コーヒーの人

コーヒーの人

コーヒーの人

A Film About Coffee(ア・フィルム・アバウト・コーヒー) [DVD]

A Film About Coffee(ア・フィルム・アバウト・コーヒー) [DVD]

コーヒーのドキュメンタリー映画「A Film About Coffee」を観たことをきっかけに手に取りました。コーヒーの初心者からスタートしてどのように職人・プロフェッショナルへと変わっていくか、仕事に対してどのような姿勢や哲学で取り組んでいるかなど、学歴のバックグラウンドのない文系フリーランスの自分の状況と重ねながら読み進めました。

VOX gear+ 3DVR ゴーグル

VRをとりあえず体験したいと思い購入しました。VRのヘッドセットの中では安いランクになるかもしれませんが、充分に新しい映像の世界を体験をすることができました。後日、同じものを友人にすすめたところ、友人もVRの映像体験に感動したようでした。

バックハンガー

Clipa バッグハンガー ヘマタイト

Clipa バッグハンガー ヘマタイト

バックを机や棚に引っ掛ける時に重宝しています。机や棚にネジ穴など開ける必要がなく、持ち運びも簡単です。2つ購入して、自宅用と外出用に使っています。

あずきのチカラ

あずきのチカラ 目もと用

あずきのチカラ 目もと用

あずきのチカラ 首肩用

あずきのチカラ 首肩用

以前使っていたものを引越のタイミングで紛失したため、目もと用と首肩用をそれぞれ再購入しました。長時間のデスクワークが多いので、疲れを感じた時なとに使用しています。

キャプテンスタッグ チェア

キャプテンスタッグ チェア CS ラウンジ チェア type2 グリーン M-3889

キャプテンスタッグ チェア CS ラウンジ チェア type2 グリーン M-3889

アウトドア系の椅子の座り心地が好きなため使用しています。千円程度と値段が安いことも大きな魅力です。

ファイナルファンタジー XV

Amazonでは色々な意見が出ていますが、数年ぶりにFFをやった身としてはタイムマシンに乗ったような気持ちでグラフィックの進化に驚きながら楽しんでプレイしています。経験値の稼ぎ方の軸がモンスターを倒すことからサブクエストをクリアすることに移行している点は大きな改善だと感じました。レベル上げのために駆り出されていた世界中の弟が救われたのではないかと思います。しかしバグが多いのは事実で、ボス戦でキャラがフリーズするなど致命的なバグが2回ありました。アップデートに期待しています。

電気ケトル

引越のタイミングで友人にすすめられて購入しました。コーヒー・カップラーメン・スープなど様々なシーンで役立っています。初めての電気ケトルだったので定番のティファールを選びました。最近発表されたバルミューダ電気ケトルも気になっています。

マドラー

日本デキシー マドラー13cm 100本チャック式

日本デキシー マドラー13cm 100本チャック式

電気ケトルを購入してコーヒーを飲む機会が増えたので、使い捨てのマドラーを購入しました。

ドラム式洗濯機

仕事に行く前に洗濯物を入れると帰ってきたら乾いているので、本来の家事時間を他のことに使えるなど時間を有効活用できるようになりました。洗濯機に合わせて服選びも変わり、乾燥機にかけても縮みにくい素材の服を中心に選ぶようになりました。