【问题标题】:Tensorflow - How to create a neural network of variable sizeTensorflow - 如何创建可变大小的神经网络
【发布时间】:2019-01-26 03:55:30
【问题描述】:

我正在尝试编写一个 Python 程序,该程序基本上可以遍历 Tensorflow 神经网络的许多可能性。换句话说,我想创建一个循环,用一个隐藏层训练算法,然后尝试两个隐藏层,等等。但是,我似乎找不到任何指向正确方向的文档,并且想要检查并了解如何处理此问题的共识。

谢谢!

编辑:使用下面的 cmets 和答案,我仔细查看了一些文档 -- particularly this link -- 并打算在每个会话中使用 for 循环将层附加到顺序模型。

当我有时间实施它时,我将提供有关其工作原理的更新。

【问题讨论】:

  • 为什么不尝试在每次迭代时创建一个新模型,同时添加/删除一个层,预测后删除它并在下一次迭代时创建一个新模型?
  • @AnkishBansal 这是我的一般想法,但我在 TensorFlow/Keras 文档中找不到任何允许我以这种增量方式构建模型的内容。我错过了什么吗?

标签: python tensorflow machine-learning neural-network


【解决方案1】:

一旦将节点添加到 TensorFlow 会话图中,它们就不会被删除。相反,session 可以在每个神经网络经过训练并打开一个新会话后关闭。这将释放资源并为每个网络创建一个新图表。

#Create neural network 1
with tf.session() as sess1: #"sess1" for clarity. Call all sessions "sess" in practice
    #Create your first network and perform training operations like usual
    #...

    #Close the session, freeing all resources
    sess1.close()

#Create neural network 2
with tf.session() as sess2: #"sess2" for clarity. Call all sessions "sess" in practice
    #Create your second network and perform training operations like usual
    #...

    #Close the session, freeing all resources
    sess2.close()

您可以根据需要多次重复该过程。每个神经网络都可以从每个会话中保存(保存到不同的文件中)。

【讨论】:

  • 这是一个很好的开始!我想更具体地说,我的问题是如何创建一个循环来为我手动写出每个网络的细节?我在想象某种 for 循环实现,它允许我重复进行这些会话。
  • 您可以在循环内创建和关闭会话。对于每个网络,创建一个会话,调用一个函数来创建网络,训练并保存,然后关闭会话。重复,直到您的所有网络都被迭代。
猜你喜欢
  • 1970-01-01
  • 2021-12-15
  • 2017-01-06
  • 1970-01-01
  • 2018-11-05
  • 2018-04-21
  • 2013-07-01
  • 2018-06-22
  • 1970-01-01
相关资源
最近更新 更多