LoginSignup
0
0

More than 3 years have passed since last update.

概要

mindが謎なので調べてみた。
vistaに入れた。
ニューラルネットワーク、書いてみた。
ウェイトとバイアスは、tensorflow.jsで学習済み。
xorを推論する。

サンプルコード



tanh関数は 関数 小数入力 小数出力
 aは 小数変数
 bは 小数変数
 vは 小数変数
 vに 入れる
 [exp(v)]を aに 入れる
 [exp(-1.0f × v)]を bに 入れる
 [(a - b) / (a + b)]を 返す。

sigmoid関数は 関数 小数入力 小数出力
 vは 小数変数
 vに 入れる
 [exp(-1.0f × v)]に 1.0fを f加えて vに 入れる
 1.0fを vで f割り 返す。



簡易小数表示とは
 3桁で 小数形式で表示すること。

w1は 構造体
 セル2は 小数変数
 列2は
  8個の セル2
 全体は
  2個の 列2
。
b1は 8個の 小数変数。

w2は 8個の 小数変数。

b2は 小数変数。

xは 2個の 小数変数。

hは 8個の 小数変数。

メインとは
 kは 変数
 lは 変数
 yは 小数変数
 セル2(1, 1)に -3.4681022fを 入れる
 セル2(1, 2)に 0.379121fを 入れる
 セル2(1, 3)に -1.4711456fを 入れる
 セル2(1, 4)に 2.2247136fを 入れる
 セル2(1, 5)に 2.3135107fを 入れる
 セル2(1, 6)に 2.7624693fを 入れる
 セル2(1, 7)に -1.83576fを 入れる
 セル2(1, 8)に -1.1545312fを 入れる
 セル2(2, 1)に 2.1978209fを 入れる
 セル2(2, 2)に 0.2895245fを 入れる
 セル2(2, 3)に 2.0881913fを 入れる
 セル2(2, 4)に -1.3450832fを 入れる
 セル2(2, 5)に -1.4154571fを 入れる
 セル2(2, 6)に 1.9255028fを 入れる
 セル2(2, 7)に 3.2867477fを 入れる
 セル2(2, 8)に 1.956522fを 入れる
 b1(1)に -0.6591252fを 入れる
 b1(2)に 0.3864409fを 入れる
 b1(3)に 0.4982838fを 入れる
 b1(4)に 0.3707547fを 入れる
 b1(5)に 0.3982254fを 入れる
 b1(6)に -0.3612466fを 入れる
 b1(7)に 0.4284867fを 入れる
 b1(8)に 0.2701645fを 入れる
 w2(1)に 1.4324994fを 入れる
 w2(2)に 0.7911373fを 入れる
 w2(3)に -2.3011343fを 入れる
 w2(4)に -1.7614117fを 入れる
 w2(5)に -2.4442003fを 入れる
 w2(6)に 3.9701838fを 入れる
 w2(7)に -1.837263fを 入れる
 w2(8)に -1.3641325fを 入れる
 b2に 0.9285715fを 入れる
 4を 回数指定して
  もし 回数が 1と 等しい ならば
   x(1)に 0.0fを 入れ
   x(2)に 0.0fを 入れ
   「0, 0 =  」を 表示し
  つぎに
  もし 回数が 2と 等しい ならば
   x(1)に 0.0fを 入れ
   x(2)に 1.0fを 入れ
   「0, 1 =  」を 表示し
  つぎに
  もし 回数が 3と 等しい ならば
   x(1)に 1.0fを 入れ
   x(2)に 0.0fを 入れ
   「1, 0 =  」を 表示し
  つぎに
  もし 回数が 4と 等しい ならば
   x(1)に 1.0fを 入れ
   x(2)に 1.0fを 入れ
   「1, 1 =  」を 表示し
  つぎに
  hを クリアし
  yを クリアし
  2を 回数指定して
   回数を kに 入れる
   8を 回数指定して
    回数を lに 入れる
    セル2(k, l)に x(k)を f掛けて h(l)を f加えて h(l)に 入れる
   繰り返す
  繰り返す
  8を 回数指定して
   回数を lに 入れる
   h(l)に b1(l)を f加えて h(l)に 入れる
   tanh関数(h(l))を h(l)に 入れる
  繰り返す
  8を 回数指定して
   回数を kに 入れる
   w2(k)に h(k)を f掛けて yを f加えて yに 入れる
  繰り返す
  yに b2を f加えて yを f加えて yに 入れる
  sigmoid関数(y)を yに 入れる
  yを 簡易小数表示し 改行する
 繰り返す
 「おけ」を 表示する。





実行結果



0, 0 =  0.000
0, 1 =  0.999
1, 0 =  0.999
1, 1 =  0.000
おけ

以上。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0