マイナス×マイナス

メンヘラ人工知能エンジニアのブログ/ 博士(工学)

眠れないので今更 Suffix Array の話でもかくか

 いま、Suffix Arrayを使って新しい手法を作ろうと画策している。基本的には、Katsuradaらの手法 (PDF)の応用である。しばらくは、既存の知識の応用で成果を出していく。もちろん、何に応用するかは言えない。

 この手法はSuffix Arrayをつかって、音声検索語検出を高速に行うものである。Suffix Arrayについては検索すればいくらでも詳しい情報が得られるため、詳説しない。大雑把にいうなら、巨大なドキュメントに対してインデックを貼りまくって、二分探索する感じである。メモリ効率を犠牲にして高速化を行う、現代的なアルゴリズムだ。

 Suffix Array自体の構築方法としては、Induction Sort(IS)と呼ばれる手法が高速である。詳細は以下の文献を参考にしてほしい。

Nong, G., Nong, G., Zhang, S., Zhang, S., Chan, W. H., & Chan, W. H. (2008). Two Efficient Algorithms for Linear Suffix Array Construction. Draft, 60(October), 25

実装については,sais が良いとのことである。

 この後、ごにょごにょして性能が上がると予測している。

かなりダルかった

今日は久しぶりに強い倦怠感を感じた。単純に休息が足りなかったのか、ストレスがかかっているのかわからない。

幸い今日はコンピュータさんに頑張ってもらう仕事が多く、特に仕事への影響はなかった。

いまも、GPUがガリガリ動いているはずだ。…スクリプトにバグがなければ。

いまは、新手法の前段階としてベースラインの測定をおこなっている。この辺も負荷が高くなくてやり易い仕事だ。

さて、肝心の新手法はきちんと動くだろうか?

不定愁訴

病気の性なのかそうでないのかわからないのだけど、不定愁訴です。何とも言えない寂寞感。お金がないからだろうか?

これを埋める方法は思いつかない。とりあえず、薬を飲んで嵐が過ぎ去るのを待とう。

これはこれでなかなか辛いものではあるが、今まで乗り越えてきたものに比べればなんということはない。

しかし、根本的解決が必要なのかもね。

選択と集中、あるいは野望

私はもっと生活の質を向上させていきたい。しかし、なかなか難しい…

私は人より疲れやすい。
持病のためである。家に帰ってくるとヘトヘトになって何もできない。本当は趣味と仕事、将来の仕事への自己研鑽を同時に行いたい。しかし、残念ながら、それはうまく行っていない。土日も、疲労回復のためになくなってしまう。

趣味に当てる時間は削られている。将来のための研鑽も似たようなものだ。ワーカホリックのような生活に少し嫌気がするけれど、そんなものなのかな。私の実力が足りなくて、うまく回っていないだけなのかもしれない。

人生をうまく回すためにも、選択と集中が必要だ。

現状は仕事の質を向上させるために時間を費やしたい。私には音声やディープラーニング研究の第一線に立ちたいという野望があるのだ。それだけですら、望み過ぎなのかもしれない。インプットはわすれずに行っていきたい。


How to fix Gradle-D-plugin

I want to use Gradle as D language build tool. But it is not supported. However there is Gradle D plugin on GitHub. Though it's not able to build.

GitHub - DirectCodeGraveyard/Gradle-D-plugin: Adds the D language support to gradle

# gradle build
:compileJava UP-TO-DATE
:compileGroovy UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE
:assemble UP-TO-DATE
:compileTestJava UP-TO-DATE
:compileTestGroovystartup failed:
/home/masashi/etc/Gradle-D-plugin/src/test/groovy/com/directmyfile/DPluginTest.groovy: 13: unable to resolve class CompileTask
@ line 13, column 54.
ect.tasks.compileD instanceof CompileTas
^

/home/masashi/etc/Gradle-D-plugin/src/test/groovy/com/directmyfile/CompileTaskTest.groovy: 13: unable to resolve class CompileTask
@ line 13, column 36.
assertTrue(task instanceof CompileTask)
^

2 errors

FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileTestGroovy'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

 It is very easy to fix. Apply this patch.

Index: etc/Gradle-D-plugin/src/main/groovy/com/directmyfile/tasks/CompileTask.groovy
===================================================================
--- etc.orig/Gradle-D-plugin/src/main/groovy/com/directmyfile/tasks/CompileTask.groovy
+++ etc/Gradle-D-plugin/src/main/groovy/com/directmyfile/tasks/CompileTask.groovy
@@ -11,7 +11,7 @@ class CompileTask extends DefaultTask {
     String linkedName
     String srcDir = "src/main/d"
 
-    String compiler = "dmd"
+    String compiler = "gdc"
 
     List<String> opts = []
 
Index: etc/Gradle-D-plugin/src/test/groovy/com/directmyfile/CompileTaskTest.groovy
===================================================================
--- etc.orig/Gradle-D-plugin/src/test/groovy/com/directmyfile/CompileTaskTest.groovy
+++ etc/Gradle-D-plugin/src/test/groovy/com/directmyfile/CompileTaskTest.groovy
@@ -9,7 +9,7 @@ class CompileTaskTest {
     @Test
     public void canAddTaskToProject() {
         Project project = ProjectBuilder.builder().build()
-        def task = project.task('compileD', type: CompileTask)
-        assertTrue(task instanceof CompileTask)
+        def task = project.task('compileD', type: com.directmyfile.tasks.CompileTask)
+        assertTrue(task instanceof com.directmyfile.tasks.CompileTask)
     }
 }
Index: etc/Gradle-D-plugin/src/test/groovy/com/directmyfile/DPluginTest.groovy
===================================================================
--- etc.orig/Gradle-D-plugin/src/test/groovy/com/directmyfile/DPluginTest.groovy
+++ etc/Gradle-D-plugin/src/test/groovy/com/directmyfile/DPluginTest.groovy
@@ -10,6 +10,6 @@ class DPluginTest {
     public void greeterPluginAddsGreetingTaskToProject() {
         Project project = ProjectBuilder.builder().build()
         project.apply plugin: 'd'
-        assertTrue(project.tasks.compileD instanceof CompileTask)
+        assertTrue(project.tasks.compileD instanceof com.directmyfile.tasks.CompileTask)
     }
 }

 

It is optional to change the compiler dmd to gdc

# gradle build
:compileJava UP-TO-DATE
:compileGroovy
:processResources
:classes
:jar
:assemble
:compileTestJava UP-TO-DATE
:compileTestGroovy
:processTestResources UP-TO-DATE
:testClasses
:test
:check
:build

BUILD SUCCESSFUL

I know nothing about gradle. It is only able to change it buildable.

It runs only dmd... But I will try it more sophisticated code. Today I'm tired. 

Atomにterm2がインストールできないよーという人へ

terminal-plus を使いましょう。

以上。

私の健康診断結果がヤバイ

今日はたくさんネタがあるので、一つずつ投下していきます。

 

雇入れ時、健康診断の結果が帰ってきました。中性脂肪 450ぐらいだそうです。ちなみに正常値は 145まで。お医者さんによると、

「普通高くても 200ぐらいだからね。今すぐ、大きめの病院に行ってください。おそらく家族性のものだと思います。」

 

だそうです。・・・いやー、困りました。血管がつまったりしたくないのう。