gpt4 book ai didi

deep-learning - 计算出的损失是否与所有样本相关?

转载 作者:行者123 更新时间:2023-12-02 04:24:57 24 4
gpt4 key购买 nike

我是深度学习和 Tensorflow 的新手。我对下面的示例代码有一些基本问题:

for j in range(no_of_training_sample):
...
...
_, _loss = sess.run([train_step, loss], {X: x, Y: y})
  1. 对于返回的_loss的值,是每个数据样本的损失还是从数据样本0到数据样本j的总和?

  2. 在每次 sess.run() 之后,何时更新参数 w、h 和 b?

  3. 如何更改代码以将其变成小批量?

我尝试在互联网上搜索,但无法从中快速获得答案。

最佳答案

_lossloss 的返回值(作为第一个参数传递给 run 函数的列表中的第二个元素),在执行了一个步骤之后的 computation graph (TF 基于代表需要运行的操作的计算图的“静态”执行)。

损失可以用不同的方式定义(例如,您可以将其定义为预测值和目标值之间的交叉熵),因此您将在 _loss 中获得的结果不仅取决于关于您作为第二个参数传递给 session 的数据(在您的情况下为 {X: x, Y: y}),还有您计算损失的方式。

在计算图中,例如函数 minimize 时,您的网络参数会更新。被称为。

更改代码并使其使用小批量(而不是一次使用完整数据集),而不是将 xy 传递给占位符 表达式 {X: x, Y: y} 中的 XY(当您调用 时,_loss = sess.run([train_step, loss], {X: x, Y: y})),你必须创建一个“迭代器”,它给你一个 x 的子集(和相应的 y ),你可以传递给 X(和 Y)。实际上,您可以使用一种新的 TF API 来促进这项任务(而不是从头开始创建迭代器)。

(如果你只问一个问题,我的回答可能会更详细)。

关于deep-learning - 计算出的损失是否与所有样本相关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55406724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com