Packages

A plug-and-play library for neural networks written in Gleam

Current section

Files

Jump to
gleam_synapses gen test seed_network_test.erl
Raw

gen/test/seed_network_test.erl

-module(seed_network_test).
-compile(no_auto_import).
-export([neural_network_to_json_test/0, neural_network_prediction_test/0, neural_network_normal_errors_test/0, neural_network_zero_errors_test/0, fit_neural_network_prediction_test/0]).
-spec layers() -> list(integer()).
layers() ->
[4, 6, 5, 3].
-spec my_neural_network() -> gleam_zlists@interop:z_list(gleam_zlists@interop:z_list(gleam_synapses@model@net_elems@neuron:neuron())).
my_neural_network() ->
gleam_synapses@neural_network:init_with_seed(1000, layers()).
-spec input_values() -> list(float()).
input_values() ->
[1.0, 0.5625, 0.511111, 0.47619].
-spec prediction() -> list(float()).
prediction() ->
gleam_synapses@neural_network:prediction(
my_neural_network(),
input_values()
).
-spec expected_output() -> list(float()).
expected_output() ->
[0.2, 0.8, 0.01].
-spec my_fit_network() -> gleam_zlists@interop:z_list(gleam_zlists@interop:z_list(gleam_synapses@model@net_elems@neuron:neuron())).
my_fit_network() ->
gleam_synapses@neural_network:fit(
my_neural_network(),
0.99,
input_values(),
expected_output()
).
-spec neural_network_to_json_test() -> gleam@should:expectation().
neural_network_to_json_test() ->
gleam@should:equal(
gleam_synapses@neural_network:to_json(my_neural_network()),
<<"[[{\"activationF\":\"sigmoid\",\"weights\":[0.97591192029471424,0.608726848593679616,-0.10449463866742392,0.86215539315831552,0.508145836217687808]},{\"activationF\":\"sigmoid\",\"weights\":[0.42884311071260608,-0.928013620271803264,-0.841588171984059648,0.6369844981782016,0.493257044371126848]},{\"activationF\":\"sigmoid\",\"weights\":[-0.250953134676056512,0.486245119456245824,0.373046333986740224,0.48124515069088416,0.437726902073087424]},{\"activationF\":\"sigmoid\",\"weights\":[0.34062889128564544,-0.075654855768376944,0.12336723424429552,-0.590345384807812224,-0.025738667762999156]},{\"activationF\":\"sigmoid\",\"weights\":[0.097662715981162496,0.102552052937866064,0.763052863780054656,0.864186513158113408,0.852234019355143168]},{\"activationF\":\"sigmoid\",\"weights\":[0.500883936382927808,-0.815786202686251648,-0.069786319095865856,0.052542488749475872,-0.42187283962216096]}],[{\"activationF\":\"sigmoid\",\"weights\":[-0.545387987433667776,0.193848784045706816,-0.894539921764575488,0.017658813141432584,-0.99557544998996224,0.78955757947190272,-0.135504802947656656]},{\"activationF\":\"sigmoid\",\"weights\":[0.7449544487116448,0.820276742068607488,-0.100644851204899856,-0.433682731359977792,-0.458571748080177216,-0.18585897382787264,0.7339677148976192]},{\"activationF\":\"sigmoid\",\"weights\":[-0.695678943892840576,0.84676260345272,0.755033002416591488,-0.147621102357376128,0.94595696395035776,0.242011207645256736,0.093684348045486752]},{\"activationF\":\"sigmoid\",\"weights\":[0.16876442707872384,-0.216468406120710048,-0.25336739896256112,0.416066890622018432,0.025323671178192784,0.517898431689628928,0.160560495194321792]},{\"activationF\":\"sigmoid\",\"weights\":[-0.295402891098786496,0.234971109993689984,0.175273896680819168,-0.616672251978913152,0.759511997533433216,0.619803202444554112,0.183035240691822976]}],[{\"activationF\":\"sigmoid\",\"weights\":[0.882362387086611968,-0.371599210719792064,-0.245399966611133504,0.03076713228196848,0.656814133282412672,-0.27558689300370864]},{\"activationF\":\"sigmoid\",\"weights\":[0.63357058507698304,-0.048198159104340776,-0.49323248769687392,-0.684966179534859392,-0.357854336273865088,0.918464864900381056]},{\"activationF\":\"sigmoid\",\"weights\":[0.593111751544443904,-0.006652794363385395,0.867715902167896192,-0.934252979757118848,0.657668916181701376,0.15566771739603104]}]]"/utf8>>
).
-spec neural_network_prediction_test() -> gleam@should:expectation().
neural_network_prediction_test() ->
gleam@should:equal(
prediction(),
[0.7018483008852783, 0.5232699523175631, 0.746950953587391]
).
-spec neural_network_normal_errors_test() -> gleam@should:expectation().
neural_network_normal_errors_test() ->
gleam@should:equal(
gleam_synapses@neural_network:errors(
my_neural_network(),
0.99,
input_values(),
expected_output()
),
[0.07624623311148832,
0.042888506125212174,
0.0389702884518459,
0.036307693745359616]
).
-spec neural_network_zero_errors_test() -> gleam@should:expectation().
neural_network_zero_errors_test() ->
gleam@should:equal(
gleam_synapses@neural_network:errors(
my_neural_network(),
0.99,
input_values(),
prediction()
),
[0.0, 0.0, 0.0, 0.0]
).
-spec fit_neural_network_prediction_test() -> gleam@should:expectation().
fit_neural_network_prediction_test() ->
gleam@should:equal(
gleam_synapses@neural_network:prediction(
my_fit_network(),
input_values()
),
[0.6335205999385805, 0.5756314596704061, 0.6599122411687741]
).