【问题标题】:Neural Networks package in Wolfram Mathematica is not Parallel?Wolfram Mathematica 中的神经网络包不是并行的?
【发布时间】:2026-01-30 21:35:01
【问题描述】:

我刚刚在非常强大的硬件上创建了一个非常大的神经网络,想象一下我的震惊和失望,当我意识到来自 NeuralNetworks 包的 NeuralFit[] 似乎只使用一个核心,甚至没有达到最大容量.我很伤心。我真的必须从头开始编写整个 NN 实现吗?还是我错过了一些简单的事情?

我的网络将 200 个输入输入到 300 个神经元的 2 个隐藏层,以产生 100 个输出。我知道我们在谈论数万亿次计算,但只要我知道我的硬件是弱点——可以升级。如果单独放置一段时间,它应该可以很好地处理这样一个网络的训练(4Ghz 8 线程机器,具有 24Gb 的 2000Mhz CL7 内存,在 SATA-III 上运行 RAID-0 SSD 驱动器 - 我很确定)。

想法?建议?提前感谢您的意见。

【问题讨论】:

  • “震惊”、“失望”、“伤心欲绝”。嗯,如果你问我,这听起来有点像过分的反应。无论如何,我想知道神经网络是否可以轻松并行化。有了所有这些互连,可能需要在内核之间进行大量通信,这将对速度产生相当大的影响。
  • 您可能想阅读这篇关于使用 Mathematica 实现 NN 的博客 (textanddatamining.blogspot.com/2011/11/…)
  • “如果你问我,这听起来有点像一个过分的反应”——如果你从一家在非常高端的数学解决方案方面有良好记录的公司付钱买一个包裹,然后你抛出一个无法在 24 小时内进行单次迭代训练的现实世界问题,是的,我会说这是一个有点情绪化的好理由。 :-) 此外,我对自己的工作充满热情,对我来说不仅仅是数字,这不是我的工作,这是我个人的“孩子”。
  • 我很欣赏这个链接,我一定会阅读它,如果实现我自己的方法是要走的路,我会认真对待它并尽我所能做到最好。我也可以在 C 中实现它,而不是在 Mathematica 中。如果有人已经为您完成了优化,那么使用包的全部意义在于避免实现我自己的。在这个特定的包装中,性能似乎没有得到优化,这很好,只是希望它在“标签上”得到更好的披露。
  • “想知道神经网络是否可以轻松并行化” - 神经网络是一些最容易并行化的算法,因为它们涉及许多独立的求和/推导,其中单个操作的结果不必共享在分支之间,并且可以被分成独立的集合,这些集合可以提供给多个内核,甚至是远程内核。这就是所有超大规模人工神经网络的完成方式。你认为 IBM 是如何完成他们的 1.6x10^9 神经元网络的?在单核上?

标签: wolfram-mathematica neural-network mathematical-optimization mathematica-8


【解决方案1】:

我是神经网络包的作者。给定输入,很容易并行化神经网络的评估。也就是说,在给定输入(以及所有权重,网络参数)的情况下计算网络的输出。但是,这种评估不是很耗时,并且对于大多数问题将其并行化也不是很有趣。另一方面,网络的训练通常很耗时,不幸的是,并行化并不容易。训练可以用不同的算法完成,最好的算法不容易并行化。我的联系信息可以在 Wolfram 网站上的产品主页上找到。非常欢迎改进建议。

如果您关闭建议栏(在首选项下),该软件包的最后一个版本在版本 9 和 10 中可以正常工作。原因是该软件包使用旧的 HelpBrowser 作为文档,并且与建议栏结合使用会崩溃。

你的乔纳斯

【讨论】:

    【解决方案2】:

    你可以直接联系包的作者,他是个很平易近人的人,说不定能提出一些建议。

    【讨论】:

    • +1 如果您可以在回复中提供更多详细信息
    • @berniethejet:你有联系方式吗?该软件包由 wolfram 出售,未提及作者。我很想与作者联系,并与他讨论对软件包的一些更改和添加。甚至愿意贡献代码或时间来编写代码。
    • @Gregory:作者的名字是 Jonas Sjöberg。你是对的,他没有宣传他对包裹的所有权。他在几年前的一次会议上发表演讲:library.wolfram.com/infocenter/Conferences/5417
    • 谢谢。我看看能不能联系到他。如果有什么有用的,我会在这里更新。
    • 作者可以在这里找到jonas dot sjoberg at chalmers dot se
    【解决方案3】:

    我不确定您是如何编写代码的,或者它是如何在您使用的包中编写的;尝试使用矢量化,它确实加快了线性代数计算。在ml-class.org 课程中,您可以看到它是如何制作的。

    【讨论】:

      最近更新 更多