你好,二郎初学者在这里试图实现一个基本的ANN (人工神经网络)跟随本教程从WIL钟。代码与他的github回购完全一样。
运行此命令:
1> ann_test:run()
导致一堆(确切地说是五个)错误如下:
=ERROR REPORT==== 18-Feb-2015::07:11:49 ===在进程<0.60.0>中的退出值为:{undef,[{ann,感知器,[]] }} =ERROR REPORT==== 18-Feb-2015::07:11:49 ===在进程<0.61.0>中的退出值为:{undef,[{ann,感知器,[]] }}
不知何故在ann_test.erl中产生了这些过程
X1_pid =产卵(ann,感知器,[] ),
造成麻烦,但我不知道如何追踪。试图找出问题的红虫指向ann_test:run和安:感知器,但它没有显示任何东西。还尝试将process_flag(trap_exit,true)添加到run()中,但是没有。也尝试添加-compile(export_all)以防万一。
谁能把我引向正确的方向?非常感谢。
发布于 2015-02-18 11:20:50
这段代码被窃听了。此错误意味着没有匹配参数的导出函数ann:perceptron/3。只有ann:perceptron/4。它在ann_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,可以使用exit(whereis(ann_grapher), kill).
发布于 2015-02-18 11:22:27
您可以这样读取此错误消息{undef,[{ann,perceptron,[[],[],[]],[]}]}:
undef)ann中perceptron[[], [], []]这是正确的,因为只有一个定义,它需要4个参数,而不是3个。在ann_test:setup中,perceptron由四个空列表生成。你可以试试。
换句话说,错误massege内部的元组具有结构{Module, Function, ListOfArguments, NotSureWhatThatIs}。
https://stackoverflow.com/questions/28581209
复制相似问题