TensorFlow中可以建立增强拓扑(NEAT)神经网络的神经进化吗?

时间:2018-09-12 03:53:37

标签: python tensorflow pytorch neat

我正在制作一个用于时间序列数据分析的机器学习程序,使用NEAT可以帮助完成这项工作。我不久前开始学习TensorFlow,但似乎TensorFlow中的计算图通常是固定的。 TensorFlow中是否有工具可帮助构建动态演化的神经网络?还是像Pytorch这样的更好的选择?谢谢。

3 个答案:

答案 0 :(得分:1)

建立演化的张量流网络的一种方法是使用超净算法或es-超净算法,而不是在物种中的单个网络上运行进化,而是进化出一个“基因组”,该基因组实际上是编码表型的cppn神经网络。对于cppn,您可以使用前馈张量流网络,但要注意的是每个节点上都可以使用不同的激活函数,这使cppn得以发展成为可以查询``表型''神经网络的结构和权重的方法您可以为其使用通用的tensorflow网络(或您选择的任何网络)

我将研究整洁的python和peas库,并查看它们使用的网络,并使用张量流网络复制这些类。

答案 1 :(得分:0)

TensorFlow支持eager execution,它可以支持任意动态的网络拓扑。

答案 2 :(得分:0)

在TensorFlow的静态图模式下,如果没有明显的取舍,就无法实现它,因为总体中神经网络的拓扑会发生变化。静态图适用于其架构在训练期间不会改变的模型。但是,由于它们支持动态计算图,因此可以在TensorFlow Eager或PyTorch中完成。

在TensorFlow Eager中检查此实现:https://github.com/crisbodnar/TensorFlow-NEAT