Java theory and practice: Dealing with InterruptedException
http://www.ibm.com/developerworks/library/j-jtp05236/
2015-02-13
Java の InterruptedException の扱い方
Java の InterruptedException の扱い方は、IBM の developerWorks のサイトにある記事が参考になります。
2013-12-10
Visual C++ でバイトの順序を逆にする関数
Visual C++ でバイトの順序を逆にする関数
がランタイムに存在していたのを下記のサイトの記事で知りました。
_byteswap_uint64, _byteswap_ulong, _byteswap_ushort (CRT) http://msdn.microsoft.com/en-us/library/a3140177%28v=vs.71%29.aspx
がランタイムに存在していたのを下記のサイトの記事で知りました。
melancholic afternoon
http://homepage1.nifty.com/herumi/diary/1312.html#6
2013-11-13
ニューラルネットによる正規分布の学習
ニューラルネットによる正規分布の学習のビデオです。
以前 YouTube で見つけたのを思い出したので、紹介しておきます。
以前 YouTube で見つけたのを思い出したので、紹介しておきます。
artificial neural network / normal distribution
Artificial neural network learns normal distribution using back propagation
2013-10-23
Android と OpenCL と RenderScript
Andoid 4.3 では OpenCL が使えなくなっているそうです。
代わりに RenderScript というものがあるようです。
モバイル端末でGPUを使って演算できると、自宅で省電力な計算クラスタの構築に使えるので、発展を期待したいです。
代わりに RenderScript というものがあるようです。
RenderScript | Android Developersざっと見た感じでは、float4 型はありましたが、さすがに float16 型はないようです。
http://developer.android.com/guide/topics/renderscript/compute.html
モバイル端末でGPUを使って演算できると、自宅で省電力な計算クラスタの構築に使えるので、発展を期待したいです。
2013-10-19
Visual Studio 2013 がリリース
Visual Studio 2013 がリリースされたので、C++11 の対応状況を調べてみました。
あと、Git がデフォルトでサポートされているのもいい感じです。
C++11 Features (Modern C++)「Non-static data member initializers」や「Initializer lists」がサポートされたのがうれしいですね。
http://msdn.microsoft.com/en-us/library/vstudio/hh567368%28v=vs.120%29.aspx
あと、Git がデフォルトでサポートされているのもいい感じです。
2013-08-25
ニューラルネットのシグモイド関数と tanh 関数の関係
ニューラルネットの標準シグモイド関数と tanh 関数の関係は次のようになります。
標準シグモイド関数は、
\[ sigm(x) = \frac{1}{1 + e^{-x}} \]
です。
tanh 関数の別表現は、
\[ \tanh(x) = -1 + \frac{2}{1 + e^{-2x}} \]
となります。
よって、
\[ \tanh(x) = -1 + 2sigm(2x) \]
となります。
つまり、標準シグモイド関数の入力値を2倍にして、出力値の値域を (-1, 1) に引き伸ばした感じです。
関連
参考
標準シグモイド関数は、
\[ sigm(x) = \frac{1}{1 + e^{-x}} \]
です。
tanh 関数の別表現は、
\[ \tanh(x) = -1 + \frac{2}{1 + e^{-2x}} \]
となります。
よって、
\[ \tanh(x) = -1 + 2sigm(2x) \]
となります。
つまり、標準シグモイド関数の入力値を2倍にして、出力値の値域を (-1, 1) に引き伸ばした感じです。
関連
参考
- sigmoid(x) - Wolfram Alpha
- tanh(x) - Wolfram Alpha の Alternative representations
2013-08-17
Eclipse で Android 2.3.3 のソースを表示する方法
Eclipse で Android 2.3.3 のライブラリのソースコードを表示させようとしたのですが、Android SDK Manager の「Android 2.3.3 (API 10)」にはソースコードがなくて、ダウンロードできません。
下記のURLから Eclipse のプラグインをインストールして、ライブラリのソースコードを表示できるようになりました。
まず、Eclipse でプラグインをインストールする要領で、
下記の Location から「Android SDK Installer」をインストールします。
http://adt-addons.googlecode.com/svn/trunk/installer/com.android.ide.eclipse.installer.update/
Eclipse を再起動すると「Android SDK Installer」のダイアログが表示されるとありますが、私の環境では表示されませんでした。
次に、下記の Location から「Android Sources」をインストールします。
http://adt-addons.googlecode.com/svn/trunk/source/com.android.ide.eclipse.source.update/
これで Android 2.3.3 のライブラリでソースコードを表示できるようになりました。
下記のURLから Eclipse のプラグインをインストールして、ライブラリのソースコードを表示できるようになりました。
adt-addons詳細は上記のサイトを読んでもらうとして、以下に簡単に説明します。
Additional Eclipse plugins for Android
http://code.google.com/p/adt-addons/
まず、Eclipse でプラグインをインストールする要領で、
下記の Location から「Android SDK Installer」をインストールします。
http://adt-addons.googlecode.com/svn/trunk/installer/com.android.ide.eclipse.installer.update/
Eclipse を再起動すると「Android SDK Installer」のダイアログが表示されるとありますが、私の環境では表示されませんでした。
次に、下記の Location から「Android Sources」をインストールします。
http://adt-addons.googlecode.com/svn/trunk/source/com.android.ide.eclipse.source.update/
これで Android 2.3.3 のライブラリでソースコードを表示できるようになりました。
2013-08-13
OpenCL 雑感
Deep Learning を GPU で動かすと CPU よりも速くなるというのを見かけたので、次のグラボを買ってみました。あと、CPU 内蔵ではない GPU で OpenCL も試したかったので。
ASUS HD7790-DC2OC-1GD5 ¥16,640
このグラボのスペックは次のとおりです。
GPU: AMD ATI RADEON HD 7790 (1075MHz)
メモリ: GDDR5 1GB (6400MHz)
こちらの性能表を見ると、この GPU は 1792 GFLOPS、CPU は Wikipedia から適当に推測すると 80 GFLOPS くらいでしょうか。
20倍?少なく見ても10倍?なんて淡い期待を抱きつつ、OpenCL のコードを組んでみました。
完成したプログラムを走らせてみると…あれ?あんまり速くなってない。むしろ、CPU から GPU へのデータ転送時間も含めると遅くなるかも、という結果に。しかも、C言語で組まないといけない、メモリの使用制限が厳しい等、OpenCL 対応するのが面倒くさい。
AMD の OpenCL ガイドを読んでみたり、GPU 関連の論文を少し読んでみたのですが、自分の計算処理では期待したほどの効果は得られませんでした。
まあ、GPU で爆速なんて謳っているのは、5~10万円くらいのグラボを2~3枚使ってますしね。
演算量が多ければ安い GPU でもそれなりの効果が得られるのかも知れませんが、作るコストや作り直すコストを考えると普通に CPU でいいかなと思いました。
ASUS HD7790-DC2OC-1GD5 ¥16,640
このグラボのスペックは次のとおりです。
GPU: AMD ATI RADEON HD 7790 (1075MHz)
メモリ: GDDR5 1GB (6400MHz)
こちらの性能表を見ると、この GPU は 1792 GFLOPS、CPU は Wikipedia から適当に推測すると 80 GFLOPS くらいでしょうか。
20倍?少なく見ても10倍?なんて淡い期待を抱きつつ、OpenCL のコードを組んでみました。
完成したプログラムを走らせてみると…あれ?あんまり速くなってない。むしろ、CPU から GPU へのデータ転送時間も含めると遅くなるかも、という結果に。しかも、C言語で組まないといけない、メモリの使用制限が厳しい等、OpenCL 対応するのが面倒くさい。
AMD の OpenCL ガイドを読んでみたり、GPU 関連の論文を少し読んでみたのですが、自分の計算処理では期待したほどの効果は得られませんでした。
まあ、GPU で爆速なんて謳っているのは、5~10万円くらいのグラボを2~3枚使ってますしね。
演算量が多ければ安い GPU でもそれなりの効果が得られるのかも知れませんが、作るコストや作り直すコストを考えると普通に CPU でいいかなと思いました。
2013-03-20
C++11
C++11 で auto キーワードやメモリ管理系のクラスが追加されていたのを次のブログで知った。
久々に C++ をさわってみよう。
C++11 スマートポインタの話 - ここは匣auto_ptr が deprecated になっていたなんて…。
http://fimbul.hateblo.jp/entry/2013/03/20/020349
久々に C++ をさわってみよう。
2012-11-17
Eclipse のフォントに Consolas を指定した場合に日本語の文字が小さい
Eclipse のフォントに Consolas を指定した場合に日本語の文字が小さく表示された。
フォントリンクだけで以前は特に問題なかったような気もするが…。
対処法をググって、次のページを見つけた。ちょうどよい大きさで表示されるようになった。
フォントリンクだけで以前は特に問題なかったような気もするが…。
対処法をググって、次のページを見つけた。ちょうどよい大きさで表示されるようになった。
[Eclipse] Eclipse: Consolas + メイリオ の ClearType 表示私が試した環境は Windows 7 と Eclipse 4.2.1。
http://monado.dtiblog.com/blog-entry-128.html
レジストリエディタで以下のパスを開く。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
Microsoft Sans Serif の項目を開き、1行目に次のフォントリンク指定を追加する。
meiryo.ttc,Meiryo,128,72
再起動する。
Subscribe to:
Posts (Atom)