首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批量训练不收敛,而单独训练样本收敛

批量训练不收敛,而单独训练样本收敛
EN

Stack Overflow用户
提问于 2018-12-15 10:34:58
回答 1查看 24关注 0票数 0

我正在学习Tensorflow,并尝试一些测试模型,以了解Tensorflow是如何工作的。这个模型非常简单(一个线性模型),它有以下输入和输出:

代码语言:javascript
复制
X = tf.placeholder(tf.float32, shape=(None, 1), name="Input")
Y = tf.placeholder(tf.float32, shape=(None, 1), name="Output")

所以基本上,输入和输出只有一个维度。至于培训阶段:

代码语言:javascript
复制
for epoch in range(training_epochs):
  for (x, y) in zip(trX, trY):
    sess.run(train_op, feed_dict={X: [x], Y: [y]})

上面的代码是当我训练模型时,一次训练一个样本,它起作用了。至于我的下一步,我想看看如何在每个时期使用整个集合训练模型:

代码语言:javascript
复制
for epoch in range(training_epochs):
  sess.run(train_op, feed_dict={X: trX, Y: trY})

这种训练方式不会收敛。和trX & trY都属于shape (101, 1)。那么是我的期望不到位,还是我在这里做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-15 11:03:34

事实证明,问题出在成本函数定义中。最初,成本函数的定义如下:

代码语言:javascript
复制
cost = tf.pow(Y - y_model, 2)

我意识到它缺少平均成分(前一个是返回一个矩阵而不是单个值)。

代码语言:javascript
复制
cost = tf.reduce_mean(tf.pow(Y - y_model, 2))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53789076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档