【问题标题】:implementing neural networks using c vs using c++? [closed]使用 c 与使用 c++ 实现神经网络? [关闭]
【发布时间】:2014-12-13 15:22:53
【问题描述】:

我正在使用 C 语言为一门课程实施神经网络。我很久没有用 C++ 和 C 编程了。我使用 C 语言开始了我的前几个实现,这让我很头疼! 现在,我不确定是因为语言还是NN与任何语言的关系? 顺便说一句,我们不允许使用任何 NN 工具箱或库。

有人告诉我用 C++ 做起来要容易得多。但是我的日程安排很紧,我担心我可能会浪费“宝贵的”时间来转换到 C++ 以发现好处是微不足道的!

所以我想你可能会引导我做这件事?切换到 C++ 是否值得(时间效率方面)?

谢谢

【问题讨论】:

  • 神经网络是相当先进的概念。在解决这个问题之前,您不应该已经是一位经验丰富的程序员吗?语言不应该是绊脚石。
  • 我是一位经验丰富的网络开发人员。我的问题与编程的复杂性无关!如果您是一位经验丰富的程序员,您应该知道这与使用这种或那种语言“实现”的复杂性之间的区别!
  • 如果您想将其作为库出售,并且有修改/增强功能的范围。你应该选择 C++。如果您出于某种研究目的或您的其他应用程序需要它并且将来可能没有重大修改,则可以使用 c/c++。我的意思是说哎呀并不重要

标签: c++ c neural-network


【解决方案1】:

过渡到 C++ 可能值得您花时间,特别是如果您已经掌握了一些面向对象的技能和理解(即使不是 C++ 语言本身)。但是,如果 OO 对您来说很困难,那么过渡可能弊大于利。这取决于你作为程序员。

过渡不会像您想象的那么难。在我看来,这不像是完全学习一门新语言,而是更像是学习一门语言的新特性。请记住,您编写的所有 C 代码仍将在 C++ 中编译(我认为大多数情况下?请参阅 Kitsune 对此答案的评论),因为 C++ 几乎是 C 的超集。

没有……直接的好处,可以这么说。你仍然可以用 C 解决这个问题,但是 C++ 和面向对象可以帮助你创建一个更好、更可共享和更易于理解的解决方案,因为虽然我对神经网络不太了解,但我很确定其中一些特性可以由于面向对象,巧妙地抽象了。

再一次,如果 OO 不是您的小菜一碟,那么这最终可能会让您更加困难。考虑一下你作为程序员的优势:你能画一个类图来弄清楚所有东西是如何舒适地组合在一起的吗?您对接口和抽象等面向对象的概念有很好的理解和欣赏吗?如果没有,那么 OO 弊大于利。

【讨论】:

  • C++ 不是 C 的 strict 超集,但它相当接近。一些 C 代码不是有效的 C++ 代码,而且 C++ 编译器通常比 C 编译器更简单(这也是 GCC 从编译为 C 转换为编译为 C++ 的部分原因)。
  • -1 用于谈论 OO(一个没有明确含义的术语)而没有提及任何好处或在这种情况下它如何提供帮助。
  • 你是对的 2unco!这与 c 和 c++ 之间的语言术语/语句的差异无关!它是 OO 和非 OO 编程之间的区别,这就是为什么 C++(或任何面向对象的语言)比 C 更好(更容易)实现神经网络模型的原因。
【解决方案2】:

就像任何其他编程任务(不依赖于仅以一种语言提供的某些框架)一样,使用神经网络的特殊语言并没有获得任何神奇的优势。

如果您同意用 C++ 编写代码通常比用 C 编写代码容易得多,那么用 C++ 编写神经网络代码比用 C 编写神经网络代码要容易得多。但这是一个高度基于意见的话题。

【讨论】:

    猜你喜欢
    • 2018-11-01
    • 2015-04-14
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 2018-12-02
    • 2016-12-15
    • 2010-12-14
    相关资源
    最近更新 更多