Tensorflow:随着训练的进行,图中的节点数量不断增加

Effective_cellist

我正在 tensorflow 中训练卷积模型。在对模型进行了大约 70 个 epochs 的训练后,大约需要 1.5 小时,我无法保存模型。它给了我ValueError: GraphDef cannot be larger than 2GB我发现随着训练的进行,图中节点的数量不断增加。

在 epoch 0、3、6、9,图中的节点数分别为 7214、7238、7262、7286。当我使用with tf.Session() as sess:,而不是sess = tf.Session()将会话作为 传递时,节点数分别为 3982、4006、4030、4054 个 epochs 0、3、6、9。

这个答案中,据说随着节点被添加到图中,它可能会超过其最大大小。我需要帮助了解节点数量如何在我的图表中不断增加。

我使用以下代码训练我的模型:

def runModel(data):
    '''
    Defines cost, optimizer functions, and runs the graph
    '''
    X, y,keep_prob = modelInputs((755, 567, 1),4)
    logits = cnnModel(X,keep_prob)
    cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=y), name="cost")
    optimizer = tf.train.AdamOptimizer(.0001).minimize(cost)
    correct_pred = tf.equal(tf.argmax(logits, 1), tf.argmax(y, 1), name="correct_pred")
    accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32), name='accuracy')

    sess = tf.Session()
    sess.run(tf.global_variables_initializer())
    saver = tf.train.Saver()
    for e in range(12):
        batch_x, batch_y = data.next_batch(30)
        x = tf.reshape(batch_x, [30, 755, 567, 1]).eval(session=sess)
        batch_y = tf.one_hot(batch_y,4).eval(session=sess)
        sess.run(optimizer, feed_dict={X: x, y: batch_y,keep_prob:0.5})
        if e%3==0:
            n = len([n.name for n in tf.get_default_graph().as_graph_def().node])
            print("No.of nodes: ",n,"\n")
            current_cost = sess.run(cost, feed_dict={X: x, y: batch_y,keep_prob:1.0})
            acc = sess.run(accuracy, feed_dict={X: x, y: batch_y,keep_prob:1.0})
            print("At epoch {epoch:>3d}, cost is {a:>10.4f}, accuracy is {b:>8.5f}".format(epoch=e, a=current_cost, b=acc))

节点数量增加的原因是什么?

杰德赫萨

您正在训练循环中创建新节点。特别是,您正在调用tf.reshapeand tf.one_hot,每个都会创建一个(或多个)节点。您可以:

  • 使用占位符作为输入在图形外部创建这些节点,然后仅在循环中评估它们。
  • 不要将 TensorFlow 用于这些操作,而是使用 NumPy 或等效操作。

我会推荐第二个,因为使用 TensorFlow 进行数据准备似乎没有任何好处。你可以有类似的东西:

import numpy as np
# ...
    x = np.reshape(batch_x, [30, 755, 567, 1])
    # ...
    # One way of doing one-hot encoding with NumPy
    classes_arr = np.arange(4).reshape([1] * batch_y.ndims + [-1])
    batch_y = (np.expand_dims(batch_y, -1) == classes_arr).astype(batch_y.dtype)
    # ...

PD:我还建议tf.Session()with 上下文管理器中使用以确保close()在最后调用方法(除非您想稍后继续使用相同的会话)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Hazelcast嵌入式拓扑| 延迟随着群集中节点数的增加而增加

来自分类Dev

数量不断增加的 Python 矩阵

来自分类Dev

为什么随着训练的进行,我的tensorflow代码运行越来越慢?

来自分类Dev

如何增加Matlab图中的点数?

来自分类Dev

尽管我增加了节点数量,但Spark CSV的读取速度非常慢

来自分类Dev

删除节点数量少

来自分类Dev

根据节点具有的子节点数量对无序树进行排序

来自分类Dev

在不同形状的 tensorflow2.2.0 keras 图中训练时内存增加

来自分类Dev

Postgres性能不会随着核心数量的增加而增加

来自分类Dev

随着arangodb集合的增加,是否可能增加分片的数量?

来自分类Dev

树状图中的连接节点数

来自分类Dev

训练集精度随着集大小的增加而降低

来自分类Dev

随着AJAX调用,JavaScript堆大小不断增加

来自分类Dev

标题随着我增加字体大小而不断降低?

来自分类Dev

在线增加索引节点的数量

来自分类Dev

创建数量不断增加的重复字符列表

来自分类Dev

查找数量不断增加的游戏对象

来自分类Dev

Tensorflow:从图中删除节点

来自分类Dev

Tensorflow中计算图中的节点数没有意义

来自分类Dev

Tensorflow 预测速度随着图像的增加而增加

来自分类Dev

当我将图中的节点数从4增加到大于5时,malloc受到内存破坏

来自分类Dev

MPI-随着进程数量的增加而不会加速

来自分类Dev

渐增性能随着收集的增加(文档数量)而下降

来自分类Dev

随着 OMP 线程数量的增加,执行时间更长

来自分类Dev

随着 arraylist 对象的数量增加和减少的选项菜单

来自分类Dev

HTML Flex 项目宽度随着项目数量的增加而变化

来自分类Dev

BST不增加Java中的节点数

来自分类Dev

设置innerHTML会增加HTML节点数

来自分类Dev

为什么随着我逐渐增加更多的训练数据而减少训练和测试损失?

Related 相关文章

  1. 1

    Hazelcast嵌入式拓扑| 延迟随着群集中节点数的增加而增加

  2. 2

    数量不断增加的 Python 矩阵

  3. 3

    为什么随着训练的进行,我的tensorflow代码运行越来越慢?

  4. 4

    如何增加Matlab图中的点数?

  5. 5

    尽管我增加了节点数量,但Spark CSV的读取速度非常慢

  6. 6

    删除节点数量少

  7. 7

    根据节点具有的子节点数量对无序树进行排序

  8. 8

    在不同形状的 tensorflow2.2.0 keras 图中训练时内存增加

  9. 9

    Postgres性能不会随着核心数量的增加而增加

  10. 10

    随着arangodb集合的增加,是否可能增加分片的数量?

  11. 11

    树状图中的连接节点数

  12. 12

    训练集精度随着集大小的增加而降低

  13. 13

    随着AJAX调用,JavaScript堆大小不断增加

  14. 14

    标题随着我增加字体大小而不断降低?

  15. 15

    在线增加索引节点的数量

  16. 16

    创建数量不断增加的重复字符列表

  17. 17

    查找数量不断增加的游戏对象

  18. 18

    Tensorflow:从图中删除节点

  19. 19

    Tensorflow中计算图中的节点数没有意义

  20. 20

    Tensorflow 预测速度随着图像的增加而增加

  21. 21

    当我将图中的节点数从4增加到大于5时,malloc受到内存破坏

  22. 22

    MPI-随着进程数量的增加而不会加速

  23. 23

    渐增性能随着收集的增加(文档数量)而下降

  24. 24

    随着 OMP 线程数量的增加,执行时间更长

  25. 25

    随着 arraylist 对象的数量增加和减少的选项菜单

  26. 26

    HTML Flex 项目宽度随着项目数量的增加而变化

  27. 27

    BST不增加Java中的节点数

  28. 28

    设置innerHTML会增加HTML节点数

  29. 29

    为什么随着我逐渐增加更多的训练数据而减少训练和测试损失?

热门标签

归档