TensorFlowのエラー解消

kerasでGANのexampleを動かそうとしたら下記のエラーが出た。

TypeError: sigmoid_cross_entropy_with_logits() got an unexpected keyword argument 'labels'

調べたらどうも下記のIssueと同一のエラーな模様。 下記Issueはpython2系のもので、自分の環境はpython3系だけど同一のエラーが発生していた。

https://github.com/carpedm20/DCGAN-tensorflow/issues/84

Issueのコメントに従って、tensorflowのバージョンを最新(1.3.0rc2)に上げたところエラーが解消された。 アップデートに際しては下記リポジトリのREADMEに記載されているリンクから最新バージョンのtensorflowをDLし、その後下記コマンドを実行した。

リポジトリ: https://github.com/tensorflow/tensorflow#installation

コマンド: sudo pip install --upgrade tensorflow-1.3.0rc2-py3-none-any.whl

元々tensorflowのバージョンは最新のものに挙げたつもりだったのだけど 公式ページに書かれているものがすこし古いバージョン(1.2.1)だったようで、 どうやらそのせいでエラーが発生してたっぽい。 リポジトリのREADMEに記載されているものは最新のバージョンになっているようなので、 そちらを参照するようにした方が良さそう。

GW3日目 コードコンプリートを読んだ(途中)

CODE COMPLETE 第2版 上 完全なプログラミングを目指して

CODE COMPLETE 第2版 上 完全なプログラミングを目指して

3日目はコードコンプリートを読みつつ、A tour of Goを進めた。

コードコンプリートは6章まで読み終わった。 ソフトウェア開発におけるコンストラクション(コーディングを中心とした、詳細設計〜テストまでのプロセスのこと)に関するプラクティスが解説されている本で、現時点(6章)だと設計に関するプラクティスまでが言及されている。

今のところで印象に残っているトピックは下記

修正が遅くなるほど修正コストが増加する

要件定義の段階でミスを発見するよりもコーディングの段階でミスを見つける方が修正コストが高くなる的な話。 これは実際にやっている中でもめちゃくちゃ実感していて、既にリリースされているシステムのバグフィックスなんかだと開発段階とくらべて考慮事項が多くなるため同じ修正量であってもかかる修正コストが圧倒的に膨らむ。 だからこそ、要求段階等の早い段階でミスを見つけるのが大事。

読み進めたらまた書きます。

GW2日目 [改定第3版]Apache Solr入門を一部読んだ

[改訂第3版]Apache Solr入門――オープンソース全文検索エンジン (Software Design plus)

[改訂第3版]Apache Solr入門――オープンソース全文検索エンジン (Software Design plus)

オープンソース検索エンジン、Solrを勉強する為に読みました。 当面はSolrを運用する予定は特にないので1~4章、6章の一部、あと9章を読みました。

良かった点

  • Solrの導入方法や挙動がわかりやすく解説されている
  • githubサンプルソースが容易されていて、スムーズに読み進められる。特に躓く点がなかった。
  • 割と高度な検索エンジンの改善手法(LTRとか)をSolrに導入する方法についても言及されている。

もう少しな点

後は、検索エンジンの改善に言及するのであればモニタリングについてももう少し言及してくれるとより親切になると感じました。この点はビッグデータ分析・活用のためのSQLレシピが素晴らしかったので、検索業務に携わる人は併せて読むと良いかと。

ビッグデータ分析・活用のためのSQLレシピ

ビッグデータ分析・活用のためのSQLレシピ

GW1日目 ウェブデータの機械学習を読んだ

以下感想

  • ウェブデータと言いつつ、内容のほとんどは言語処理。タイトルと内容が若干アンマッチ。
  • 言語処理をこれから勉強したい人におすすめ。個人的には言語処理を勉強したいと思っていたのでちょうどよかった。
  • 扱っているトピックは、異常検知・評判分析・単語の意味表現・グラフマイニング・情報検索
  • 各トピック、この本の知識だけだと物足りないのでこの本を起点に興味のある/活用するトピックの専門書や論文を読むのが良い。
  • 全トピックの中でも評判分析・単語の意味表現辺りは気合が入っていて、特に単語の意味表現についてはCBOWとSkip-Gramが詳細に解説されていてかなりわかりやすかった。

GWの予定

が特にないので、ひたすら本を読もうと思っています。 読もうと思っているのは下記。

  • ウェブデータの機械学習
  • Apache Solr入門第3版
  • コードコンプリート
  • パタヘネ
  • 情報検索の基礎
  • 世界で戦うプログラミング力を鍛える本

どこまで読めるかわからないけど、力尽きるまで頑張ります。

elixir/iex/mixでコマンド補完

最近趣味でElixir/Phoenixを勉強してます。

Phoenixをいじってく過程で mix phoenix.server やら mix ecto.migrate やらを入力する機会が多々あるのですが、 デフォルトではこれらのコマンドはタブ補完ができなくて地味にしんどいです。 タブ補完してくれる何かがないかと思ってぐぐったら案の定見つかりました。

GitHub - bjhaid/elixir_auto_complete: Bash Autocompletion for elixir, iex and mix

DLしてsourceするだけで使えます。 快適なElixir/Phoenixライフに一歩近づきました。

めでたしめでたし。

Leaf Classification

勉強の為久々にKaggleをやってます。

参加してるのはこちら。

https://www.kaggle.com/c/leaf-classification

 

試行錯誤の記録をこちらに書いていきます。

実際にはもう幾つかサブミットしてますが、主要なアップデートについてのみ書いていきます。

 

1回目

とりあえずRandomForestにぶっこんで学習させてみる。スコア0.9くらい。

 

2回目

RandomForestでパラメータをグリッドサーチさせてやってみる。スコアはむしろ下がった。

 

3回目

xgboostにぶっこんで見る。スコア0.7くらい。

 

4回目

xgboostを軽くパラメータチューニング。スコア0.54くらい。

 

5回目

caribrationしてみる。元々の予測値と、caribrate後の予測値の比率を幾つかのパターンで試してみた。結果、caribrate後の値をそのままsubmitするのが最もスコアが良かった。スコア0.48くらい。