verilog書く人

自称ASIC設計者です。どなたかkaggle一緒に出ましょう。

【Python】jsonで自作クラスを含んだデータをシリアライズ/デシリアライズする

 オブジェクトをファイルに保存したい時、JSON便利ですよね。

パフォーマンスが欲しい時はprotobufやpickleを使いますが、そうでもない時はJSONxml

私的にはJSONが一番見やすいので、断然JSONを使います。

今日はJSONで自作クラスを保存したい時の話です。

 

続きを読む

rgf_python2.0.0をリリースしました


以前の紹介記事はこちら

 

改良点

  • pip install rgf_pythonだけでインストールできます。(C++コンパイルはやってくれる)
  • memoryオプション(メモリ節約する代わりに遅くなる)の追加
  • n_classes > 2の時のパラレル学習
  • gridsearchを並列実行した時に動かなくなるバグを修正
  • ドキュメントのダメダメな英語を直してもらいました。
  • predict_probのバグを修正

 

APIも以前紹介した時からかなり変わってますので、お手数ですがもう一度readmeを参照してください。

もはや、インストールだけならXGBoostよりもよくなったかもしれません笑。

続きを読む

ディープラーニングフレームワーク開発競争に見る、ライブラリ国際競争の本質

数ヶ月前、chainerがガラパゴスである、という文言をインターネットで見たchainer信者である私は衝撃だった。

だってchainerは公式ドキュメント全部英語じゃん!
githubで全世界に公開してるじゃん!
コードレビューだって英語でやってるじゃん!
英語のgoogle group作って質問答えてるじゃん!

 

続きを読む

chainerでVAT(準教師学習)

準教師学習とは一部のデータにのみ正解ラベルがつけられていて、残りはラベルがないという状態で、学習を行うことです。

ディープラーニングに必要な1クラスあたり数千のラベルを用意するのは大変なので、準教師学習の応用範囲は広いと考えています。

全てのデータセットにラベルがついてる場合でも準教師学習の手法を導入することによって性能が上がる場合があります。

 

今回はVAT(Virtual Adversarial Training)を使ってみます。

続きを読む

零細OSSでセカンドコントリビューターを得るには

一行のPRを送ってくれる人も非常にありがたいのだが、コードを読み込めて理解して機能提案してくれる有力コントリビューターがいるとプロジェクトにも技術者としての自分にも非常にいい影響がある。

 

例えば、

■コード、ドキュメントの量が増える。
二人で書くんだからもちろん増える。

■コード、ドキュメントの質が上がる。
二人で見るとお互いが気づかないところを直すので、穴が少ないコードに仕上がる。お互いの技術力向上にも繋がる。
英語ネイティブが直してくれるとほんとに助かる。

■モチベーションが上がる
外人は基本的にテンションが高い。お前のこの仕事すげえなといわれるとやる気が上がる。楽しい。

といったところだ。
ただ、有名OSSならともかく、零細OSSにとってはコントリビューター確保は簡単なことではない。

 

続きを読む

chainerで作ったDeep Learningモデルのハイパーパラメータチューニングを自動化してみる

ディープラーニングは各層の種類、活性化層の種類、オプティマイザの種類、オプティマイザのハイパーパラメータ、などなどたくさんあり、
手で最適化していくのは大変です。

そんなとき、

1. グリッドサーチ:パラメーターの候補の組み合わせパターンを全て調べる。
2. ランダマイズドサーチ:パラメーターの候補の組み合わせパターンを全て調べる。
3. その他賢いアルゴリズム系のサーチ:ベイジアン最適化、Tree-structured Parzen Estimator Approach(hyperopt)

といった、ものが使えます。

グリッドサーチはハイパーパラメータが少ない機械学習アルゴリズムでは有効ですが、ディープラーニングではあまりおすすめしません。実際には2.か3.を選ぶことになります。

賢い系のアルゴリズムはより有望そうなパラメータを試そうとしてくれます。

 

今回はhyperoptを使った例を書いてみます。

エッセンスはGpyopt(ベイジアン最適化)などほかのライブラリでも変わりません。

 

続きを読む

エイプリルフールなので、chainerのGUIクライアントを作った。

GitHub - fukatani/ChainerWing: GUI deep learning IDE based on chainer.

※一応動きます。

 

f:id:segafreder:20170401224342p:plainこんな感じ。

ぽちぽちやってるとニューラルネットが組みあがります。chainerベースです。

 

めちゃ機能が少ないですが、今後充実する予定。たぶん。

続きを読む