minosysScript 更新中

minosysScript 実装中です。

今日までに代入、++、– –、比較演算子、+, * を実装しました。
今週は地道に演算子の実装を行う予定です。

今週中に演算子全ての実装が終わると思いましたが、
演算子の数が思ったよりも多く、ちょっと無理そうです。

minosysScript を1年ぶりに更新中

実行エンジンを中途半端に実装して1年間
ほったらかしていた minosys-scrypt ですが、
1年ぶりに実装を追加することになりました。

minosys-script.git を取得するすると最近の
ソースコードが入手できます。

とりあえず、今週末までには class, package
関連以外の内容を追加したいと考えております。
毎日コミット予定なので、言語が出来ていく様子が
リアルタイムで見られるかも?!

minosys-script は最終的には www サーバ
として稼働して www に特化した処理(html の
ダウンロードや画像ファイルの range 転送)
を実装する予定ですので、乞うご期待。

何年先になるか分かりませんが。

 

フリーランス

開業届を税務署に出してきました。

知人には今年の年賀状でフリーランス宣言していましたが、
これで、名実ともにフリーランスということになりました。

当面は請負で食べていくつもりですが、技術コンサルや
製品開発のお手伝いまで間口を広げられればいいなと思っています。

皆様、よろしくお願いします。

AutoEncoder の記事を記述しました

AutoEncoder による DNN 初期化方法に関する記述を
ホームページ記事に追加しました。

今回の検証は python で行ったため、レポジトリを分けました。

Java による実装はそのうち手が空いた時に行おうと思います。

検索エンジンにN-gram+Scoreを追加しました

技術置き場に新しい検索エンジンを実装しました。

ベースは N-gram ですが、出現確率が高いほどスコアが高くなるような計算を行い、スコアに関して降順に結果が表示されます。ただし、スコアが0.0001より小さくなる場合は検索対象にはなりません。スコアの最大値は恐らく1.0です。

この検索エンジンのよいところは比較的あいまいな検索に対応できることです。特に動詞、助動詞と言った、語尾が変化する単語の検索に威力を発揮します。

なお、本検索エンジンはN-gramの軽微な改良であるため、記事化は予定しておりません。

jcurandの記事を追加しました

cuRAND を JCuda 環境で使用するための API である、jcurand の使い方をアップしました。

お膳立てが若干ありますが、それさえクリアすれば、シンプルな呼び出しで高速に乱数生成ができます。

メモリはデバイス側に確保する必要がありますが、メモリコピーを使えばホスト側に持ってきて使用することが可能です。

JCuda 版ニューラルネット記事追加

JCuda 版ニューラルネットのコードに関する説明記事をアップしました。CPU 版と比較して、以下の変更があります、

  • CPU版では batchsize 方向の並列化はしなかったが、JCuda 版では batchsize 方向も並列計算する。
  • CPU 版ではホストメモリの管理のみだったが、JCuda 版ではホストメモリおよびデバイスメモリの両方を管理する。
  • JCuda 版では計算はデバイスメモリで閉じるようにする。
  • メソッドはほぼ共通して使えるように、デバイスメモリ管理をオブジェクト定義に追加して隠蔽する。

 

SimpleNet.java バグ修正しました

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

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

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