首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何存储神经网络知识数据?

如何存储神经网络知识数据?
EN

Stack Overflow用户
提问于 2016-02-24 22:30:53
回答 2查看 6.4K关注 0票数 10

我对那个领域并不熟悉,所以这个问题似乎很奇怪。然而,在询问之前,我阅读了大量介绍性文章,内容涉及机器学习中的关键点以及神经网络的作用部分。包括非常有用的一个什么是机器学习?。基本上,就像我所得到的一样--受过良好教育的NN是(如果它是错的,请纠正我):

  1. 神经元之间的一组连接(可能是自连接的,可能有门等)
  2. 在每个连接上形成激活概率。

这两件事都会在培训期间进行调整,以尽可能接近预期的产出。然后,我们如何使用一个受过良好教育的NN -我们加载测试子集的数据,并检查它的表现有多好。但是,如果我们对测试结果感到满意,并且希望存储教育结果,然后在dataset获得新值时不再运行培训,那么会发生什么呢?

所以我的问题是--教育知识是储存在除了RAM之外的地方吗?可以转储(从某种程度上考虑对象序列化),这样您就不需要使用明天或以后获得的数据对NN进行教育。

现在我试着用synaptic.js用我的数据集做一个简单的演示,但是我找不到在项目的wiki中保存教育的那种概念。这个库只是一个例子,如果您引用一些python就可以了!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-24 22:47:02

我将在我的答案中假设您正在使用一个简单的多层感知器,尽管我的答案也适用于其他网络。

“训练”MLP的目的是找到正确的突触权重,以最小化网络输出上的错误。

当一个神经元连接到另一个神经元时,它的输入被赋予一个权重。神经元执行一个函数,例如所有输入的加权和,然后输出结果。

一旦您对网络进行了培训,并找到了这些权重,就可以使用验证集验证结果。

如果您对您的网络运行良好感到高兴,您只需记录应用于每个连接的权重。您可以随心所欲地存储这些权重(以及对网络结构的描述),然后再检索它们。没有必要在每次你想使用它的时候重新训练网络。

希望这能有所帮助。

票数 6
EN

Stack Overflow用户

发布于 2017-03-01 17:05:16

关于通过synaptic.js存储它:

这是很容易做到的!它实际上有一个内置的功能。有两种方法可以做到这一点。

如果您想使用网络而不需要再次训练它,那么

这将为您的网络创建一个独立的功能,您可以在任何地方使用javascript,而不需要synaptic.js!维基

代码语言:javascript
运行
复制
var standalone = myNetwork.standalone();

如果您希望稍后在上修改网络,请使用

只需将网络转换为JSON即可。这可以随时用synaptic.js!维基加载。

代码语言:javascript
运行
复制
// Export the network to a JSON which you can save as plain text
var exported = myNetwork.toJSON();

// Conver the network back to useable network
var imported = Network.fromJSON(exported);
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35614535

复制
相关文章

相似问题

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