首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Erlang产卵过程误差(人工神经网络)

Erlang产卵过程误差(人工神经网络)
EN

Stack Overflow用户
提问于 2015-02-18 10:25:32
回答 2查看 161关注 0票数 2

你好,二郎初学者在这里试图实现一个基本的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)以防万一。

谁能把我引向正确的方向?非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-18 11:20:50

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

代码语言:javascript
复制
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,  [[],[],[]]),

改为:

代码语言:javascript
复制
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).

票数 3
EN

Stack Overflow用户

发布于 2015-02-18 11:22:27

您可以这样读取此错误消息{undef,[{ann,perceptron,[[],[],[]],[]}]}

  • 没有函数(undef)
  • 在模块ann
  • 名为perceptron
  • 这需要三个参数,它们都是空列表[[], [], []]

这是正确的,因为只有一个定义,它需要4个参数,而不是3个。在ann_test:setup中,perceptron由四个空列表生成。你可以试试。

换句话说,错误massege内部的元组具有结构{Module, Function, ListOfArguments, NotSureWhatThatIs}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28581209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档