Process Erlang产卵过程错误(人工神经网络)

Process Erlang产卵过程错误(人工神经网络),process,erlang,Process,Erlang,嗨,二郎初学者在这里试图实现一个基本的人工神经网络(人工神经网络)以下从威尔钟。密码和他的一模一样 运行此: 1> ann_测试:run() 导致一系列(准确地说是五个)错误,如下所示: =错误报告===2015年2月18日::07:11:49 ===进程中存在错误,退出值:{unde,[{ann,perceptron,[[],[],[],[],[]} =错误报告===2015年2月18日::07:11:49 ===进程中存在错误,退出值为:{unde,[{ann,perceptron,[[],

嗨,二郎初学者在这里试图实现一个基本的人工神经网络(人工神经网络)以下从威尔钟。密码和他的一模一样

运行此:

1> ann_测试:run()

导致一系列(准确地说是五个)错误,如下所示:

=错误报告===2015年2月18日::07:11:49 ===进程中存在错误,退出值:{unde,[{ann,perceptron,[[],[],[],[],[]}
=错误报告===2015年2月18日::07:11:49 ===进程中存在错误,退出值为:{unde,[{ann,perceptron,[[],[],[],[],[]}

在ann_test.erl中以某种方式产生了流程:

X1_pid=spawn(人工神经网络、感知机、[[]、[]、[]、[])

造成麻烦,但我不知道如何追踪。尝试用redbug将问题指向ann_test:run和ann:perceptron,但没有显示任何内容。还尝试将进程_标志(trap_exit,true)添加到run()中,但再次失败。还尝试添加-compile(export_all)以防万一


谁能给我指出正确的方向吗?非常感谢。

此代码已被窃听。此错误意味着没有与参数匹配的导出函数
ann:perceptron/3
。只有
ann:perceptron/4
。它在
ann\u test:setup/0
中正确使用,因此要修复它,只需添加另一个空列表:

run() -> 
  ann_graph:start(),
  X1_pid = spawn(ann, perceptron, [[],[],[]]),
  X2_pid = spawn(ann, perceptron, [[],[],[]]),
  H1_pid = spawn(ann, perceptron, [[],[],[]]),
  H2_pid = spawn(ann, perceptron, [[],[],[]]),

  O_pid = spawn(ann, perceptron,  [[],[],[]]),
改为:

run() -> 
  ann_graph:start(),
  X1_pid = spawn(ann, perceptron, [[],[],[],[]]),
  X2_pid = spawn(ann, perceptron, [[],[],[],[]]),
  H1_pid = spawn(ann, perceptron, [[],[],[],[]]),
  H2_pid = spawn(ann, perceptron, [[],[],[],[]]),

  O_pid = spawn(ann, perceptron,  [[],[],[],[]]),

请注意,此代码在执行后不会清除,并且在同一会话中最终重新执行后会出现错误。要终止已注册进程,可以使用退出(此处为(ann_grapher),kill)。您可以通过以下方式读取此错误消息
{unde,[{ann,perceptron,[[],[],[],[]}

  • 没有函数(
    unde
  • 在模块中
    ann
  • 调用感知机
    perceptron
  • 这需要三个参数,它们都是空列表
这是正确的,因为只有一个定义,需要4个参数,而不是3个。在
annu测试:setup
中,
perceptron
生成了四个空列表。你可以试试


换句话说,error massege中的元组具有结构
{Module,Function,ListOfArguments,NotSureWhatThatIs}

不确定我怎么会错过这个,但非常感谢您的帮助。现在可以了。还感谢重新终止进程,已经在这个问题上遇到了麻烦。非常感谢您的帮助和解释如何读取错误消息。添加了另一个“[]”,现在可以使用了。