SimpleNet.java バグ修正しました

SimpleNet.java の forward() 計算で、bias を使用しないというバグがあったため、JCudaNNKernel.cu とともに修正しました。ただ、bias があってもなくても正答率に目立った変化はないようです。

JCuda 版ニューラルネットのソースコード解説は、現在作成中です。完成にはあと2〜3日かかると思いますので、好ご期待。

AutoEncoder 系のライブラリも作成中ですが、まだ動きません。

JCuda 記事を追加しました

JCuda の記事として、デバイスメモリの使い方〜カーネルの記述までを追加しました。

preparePtxFile() は JCuda というよりは JCudaDriverSample の機能なので、敢えて解説していません。

次はいよいよ JCuda を使ってニューラルネットを構築します。

JCudaSimple

JCuda ライブラリの利用方法を説明するためのプロジェクト JCudaSimple をGitHubにアップロードしました。

中身はほとんど JCudaDriverSample と同じですが、Java8 風に書き換えてあります。外部 JAR として jcuda, jcuda-natives を参照しているので、ここだけ各自の環境にあったファイル名に書き換えてください。

解説記事は一両日中に書きたいと思います。

scrayping.py にバグ

このホームページを拡張してサブフォルダを作ってみたり、他のサイトを参照したりした結果、scrayping.py がエラーを出力するようになりました。

このバグを修正した版を GitHub に上げておきました。

意外に修正が難しかった。

GitHub に検索エンジンソースを追加

GitHub.com に検索エンジンのソースコードを追加しました。

まだ N-gram ベースのプログラムしかありませんが、おいおい他のテクノロジーベースのエンジンも収録していきたいと思っています。

詳細はそのうちホームページに記述したいと思いますが、プログラムは以下のような構成になっています。

  • scayping.py: トップページを指定するとその下にある全てのページを取得し、検索用の3つのファイルを作ります。(ただし、ブログは収録しないようになっています。)
  • search.php: 検索エンジンのラッパーで、UI を与えるためのプログラムです。
  • search_engine.php: 検索エンジンの本体で、bi-gram による検索を実行します。

なお、前の記事にも書いたとおり、まだ And/Or 検索条件が書けません。

検索エンジン追加

N-gram ベースの検索エンジンが動くようになりました。結局、索引ファイルの作成は python3 で、検索エンジンは php で組んでみました。

索引ファイルはここでは作成できないので、別のマシンで随時作成したものをアップロードします(ちょっとださい)。

なお、検索対象はホームページ側の記事のみで、ブログ記事は検索されません。ブログを検索したい場合はブログの中で検索をかけてください。

And/Or 検索も実装されていませんが、そのうち実装したいと思います。

しかし、たったこれだけ実装するのに1日かかるとは、コーディングの実力が落ちたもんだ。。。

検索エンジンどうしようか

しばらく前から Google のサイト内検索を使うサイトばかりになって、自力で検索エンジンを組み立てることがなくなった。

しかし、Google だと正確な and/or 検索をさせることができなくってしまったので、自前のエンジンが欲しいことがある。

どうせヒマになるし、また作ってみることにした。今度は転置行列は C で記述するが、検索は PHP で行うことを目標とする。(このサイトがユーザコマンドの実行を許していないようだという事情もある。)

ちょっとまだるっこしいが、ページが増える度に外からクローリングしてページを収集し、転置行列を生成して戻すというやり方でやってみることにする。

ようこそ!

ようこそ、TeqStock の小部屋へ!

このブログでは、主にソフトウェア技術(一部ハードウェアもあり)について、自分が見聞したことについての感想や考察をランダムに上げていきたいと思っています。

ある程度内容がまとまったらホームページに整備するかもしれません。