- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
是否有一种好方法可以在完全连接的 PyBrain 网络中添加/删除神经元及其关联连接?假设我开始于:
from pybrain.tools.shortcuts import buildNetwork
net = buildNetwork(2,3,1)
我如何在保持所有旧权重的同时使其成为 (2,4,1) 或 (2,2,1) 网络(并将任何新权重初始化为随机的,就像在初始化网络时所做的那样) )?我想这样做的原因是因为我试图使用进化学习策略来确定最佳架构,而“变异”步骤涉及以一定概率添加/删除节点。 (输入和输出模块应该始终保持不变。)
编辑:我发现 NeuronDecomposableNetwork 应该可以使这更容易,但我似乎仍然必须分别跟踪神经元和连接。
最佳答案
我假设您正在按照 NEAT 的思路进行操作算法?您的问题有两种不同的答案:
开放式网络拓扑的演变:在这种情况下,我建议将每个神经元封装在它自己的“层”/模块中,并添加/删除它们及其与网络的连接迭代,有点像 this tutorial ,除了会有更多(单神经元)层。不要忘记在每次拓扑更改后调用 sortModules()
方法。
在预定义的框架(比如最多 1000 个神经元)内找到最佳拓扑。在这种情况下,一开始就构建完整的网络会更容易、更高效,并且只需屏蔽一些连接(例如使用 MaskedParameters
模块)。其中,memetic algorithms (used like this)旨在搜索此类拓扑空间。
如您所说,另一种方法是手动管理所有权重(通过跟踪 what is where 或使用 NeuronDecomposableNetwork
),但我不推荐那样做。
一般性评论:对于像您这样的 pybrain 的更高级用途,依赖“buildNetwork”快捷方式确实太有限了,您将希望直接使用 Network/Module/Connection API。
关于python - PyBrain 神经元操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11660014/
有没有办法在 PyBrain 中保存和恢复经过训练的神经网络,这样我每次运行脚本时都不必重新训练它? 最佳答案 PyBrain 的神经网络可以使用 python 内置的 pickle/cPickle
我有以下代码: from pybrain.datasets import SupervisedDataSet from pybrain.supervised.trainers import Backp
问题是:经过一番努力,我设法安装了 pybrain,但当我使用命令 export 'PYTHONPATH=$PYTHONPATH:' 时,它仅从终端运行。当我尝试导入模块并用 Python 编写(通过
我正在尝试使用 pybrain 中的NNregression 工具:http://pybrain.org/docs/api/tools.html 我有我的数据集: ds = SupervisedDat
如何删除 Pybrain 中的连接?我使用每个模块一个神经元技术来自定义输入层、单个隐藏层和输出层之间的连接。但现在我想在训练期间操纵该连接,其中一种操纵是删除连接/边缘。 在 Network 类中,
我最近在 PyBrain 中构建了一个神经网络,但遇到了网络太大的问题。 那么 PyBrain 中的确切限制是什么? 如何构建一个具有 750000 个输入、3 个输出和一定数量隐藏节点的网络(目前它
有人可以告诉我如何在 pybrain 中实现步骤激活函数吗? 例如。 def stepActivationFunction(n): if n > 0.5: return 1. else
我试图在 pyBrain 上进行最简单的回归,但不知何故我失败了。 神经网络应该学习函数 Y=3*X from pybrain.supervised.trainers import BackpropT
所以我在 PyBrain 中有一个 ClassificationDataSet,我已经用适当的数据对其进行了训练。即,输入如下: trainSet.addSample([0,0,0,0],[1]) t
我正在尝试使用 pybrains 做迷宫题这是我的问题:我按照教程运行示例 envmatrix = [[...]] env = Maze(envmatrix, (1, 8)) task = MDPMa
我正在尝试为我的 10 维数据集生成一个网格,同时我遵循 http://pybrain.org/docs/tutorial/fnn.html 中的代码.我正在实现并抛出错误的代码是: ticks =
我正在尝试使用以下方式安装 pybrain: git clone git://github.com/pybrain/pybrain.git 我安装了 git 然后使用 windows 命令提示符来执行
我正在尝试训练 ANN 来预测图像属于多个类别的概率,而我的目标值是此类概率的集合。 输入是经过简单整形的 28x28 灰度图片,像素值在 0-255 之间。 一个“目标”如下所示:0.738832,
我正在尝试为强化学习设置 PyBrain,但是当我第一次尝试执行操作时,总是出现相同的错误。 module.py 中的这一行正在抛出断言失败,因为我们正在使用的 ActionValueTable(模块
我目前正在尝试使用 pybrain 创建一个用于股票价格预测的神经网络。到目前为止,我只使用具有二进制输出的网络。对于这些网络,sigmoid 内层就足够了,但我认为这不是预测价格的正确方法。问题是,
每当我在 PyBrain 中调用 splitWithProportion() 函数时,都会收到弃用警告。以下是警告: /usr/local/lib/python2.7/dist-packages/Py
我正在尝试找出在 pybrain 中进行 5 倍交叉验证的正确方法。我浏览了他们的文档,但这没有帮助。我在网上找到了以下两个版本的代码: 在问题中找到这个 here . net = pybrain.t
我想训练一个具有多个输出层的网络。 in->hidden->out 1 ->out 2 这可能吗?如果是这样,我该如何设置数据集和培训师来完成培训。 最佳答案 当您考虑拆分输出以获
我正在尝试预测一组给定商品的销售价格。我在 pybrain 中使用 RecurrentNetwork 和 BackpropTrainer。这是我的代码, def nnet(train, target,
我一直致力于使用 pybrain 创建神经网络,但由于某种原因在使用传播对其进行训练后,它无法训练我的网络。我使用的任何数据集在 out 维度中有两个以上的类,只会将我所有的观察结果归为一个类别。有谁
我是一名优秀的程序员,十分优秀!