Can neuroevolution of augmenting topologies (NEAT) neural networks be built in TensorFlow? [closed]
Asked Answered
B

3

7

I am making a machine learning program for time series data analysis and using NEAT could help the work. I started to learn TensorFlow not long ago but it seems that the computational graphs in TensorFlow are usually fixed. Is there tools in TensorFlow to help build a dynamically evolving neural network? Or something like Pytorch would be a better alternative? Thanks.

Blastula answered 12/9, 2018 at 3:53 Comment(1)
In TensorFlow, there is currently no tool (as mentioned, static graphs are not optimal for tasks in which the network's topology is changing all the time). However, you could use the NeuralFit library for Python, which allows you to export the evolved model to TensorFlow.Europa
N
1

One way to make an evolving tensorflow network would be to use either hyperneat or the es-hyperneat algorithms instead of running the evolution on the individual networks in the species this instead evolves a "genome" that is actually cppn that encodes the phenotype neural nets. For the cppn you can use a feed forward tensorflow network with the caveat of having different activation functions that can be used at each node, this lets the cppn evolve to be able to be queried for the structure and weights of the "phenotype" neural network for which you can use a generic tensorflow net(or whatever net you so choose)

I would look into the neat-python and peas libraries and look at the networks they use and replicate those classes with tensorflow nets.

Noncontributory answered 7/12, 2018 at 19:20 Comment(0)
L
1

It can't be implemented in the static graph mode of TensorFlow without significant tradeoffs because the topology of the neural networks in the population changes. Static graphs are suited for models whose architecture doesn't change during training. However, it can be done in TensorFlow Eager or PyTorch because they support dynamic computation graphs.

Check this implementation in TensorFlow Eager: https://github.com/crisbodnar/TensorFlow-NEAT

Logging answered 3/1, 2019 at 19:49 Comment(0)
T
0

TensorFlow supports eager execution which can support arbitrarily dynamic network topologies.

Tam answered 17/9, 2018 at 21:0 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.