Current section

Files

Jump to
neurx lib neurx.ex
Raw

lib/neurx.ex

defmodule Neurx do
@moduledoc """
Documentation for Neurx.
"""
alias Neurx.{Build, Train, Evaluate}
@doc """
Builds the network.
Returns PID of network built.
"""
def build(config) do
if config == %{} or config == nil do
raise "[Neurx] :: Configuration is empty or nil."
end
{:ok, pid} = Build.build(config)
pid
end
@doc """
Trains the network on given data.
Returns PID of network trained
"""
def train(network_pid, training_data, options \\ %{}) do
{:ok} = verify_pid_data_tuple(network_pid, training_data)
{:ok, pid} = Train.train(network_pid, training_data, options)
pid
end
@doc """
Evaluate the given data using the network.
"""
def evaluate(network_pid, data) do
{:ok} = verify_pid_data_tuple(network_pid, data)
{:ok, pid, outputs} = Evaluate.evaluate(network_pid, data)
{pid, outputs}
end
defp verify_pid_data_tuple(pid, data) do
status =
case {pid, data} do
{nil, nil} ->
raise "[Neurx] :: Invalid network PID and data."
{_, nil} ->
raise "[Neurx] :: Invalid data."
{nil, _} ->
raise "[Neurx] :: Invalid network PID."
_ ->
{:ok}
end
status
end
@doc """
Export a built network.
"""
def export() do
end
@doc """
Import a built network file.
"""
def import() do
end
end