鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

Perlで単純パーセプトロンを実装するのに必要そうなPDLの勉強

機械学習の数学についていけていない!!

下の実装をPDLに移植できればいいのだが・・

lang/perceptron.pl at 7b840c059c0d783cab9b133c9199c8a2e8e72324 · fujimizu/lang · GitHub

PDLを少しずつ学んでいこう。そこからだ。

zeros

pdl> $a = zeros (3)

pdl> print$a
[0 0 0]

*=-1

pdl> $a = pdl(1,1,1);

pdl> $a *= -1;

pdl> print $a;
[-1 -1 -1]

+=

pdl> $a = (1,2,3);

pdl> $a = pdl(1,2,3);

pdl> $b = pdl(4,5,6);

pdl> $a += $b;

pdl> print $a;
[5 7 9]

内積(Inner Product)

d.hatena.ne.jp

use strict;
use warnings;
use PDL;

my $pdl1 = pdl [2, 4, 7];
my $pdl2 = pdl [4, 4, 7];

my $inner_product = ($pdl1 * $pdl2)->sum;

warn($inner_product);

append

pdl> $a = pdl(1);

pdl> $b = pdl(2,3,4);

pdl> print $a->append($b);
[1 2 3 4]

nelem

pdl> $a = pdl(1,2,3)

pdl> print nelem($a);
3
pdl> $a = pdl(1,2,3,4,5)

pdl> print nelem($a);
5

そんな感じで、移植した結果がこちらとりあえずテストも通っておりますので
移植成功かな?
PDL便利です。

github.com