Tensorflow线性回归模型返回巨大的成本值,然后返回inf值并停止许多Nan值

时间:2016-08-23 13:19:46

标签: python arrays numpy tensorflow nan

感谢您对此问题的关注 我一直在努力解决这个错误几个小时,我已经阅读了我遇到的论坛中的所有评论但是徒劳无功。
我正在尝试使用线性回归训练数据集。该示例首先运行良好,一切都很好,直到我更改了使用实际数据生成的随机数据。我正在使用的数据是从一个文件中读取的(我使用numpy函数将数据提取到一个numpy数组中,所以我有一个函数返回一个有939行的numpy数组,每个都有11个特性)。所以我有这句话:

all_xs = fn.read_from_file_to_array(filename) 

其中fn是模块的名称,read_from_file_to_array是一个从文件中写入的数据生成numpy数组的函数。
我检查了all_xs的类型,它是一个numpy数组 我保持Ys随机(模型应该学习的结果)和每个X(也就是每一行)我有y,然后我将每个y添加到列表all_ys中

all_ys.append(y) 

最后

all_ys = np.transpose([all_ys]) 

给了我一个numpy数组(代码在控制台上运行正常,在所有张量流代码之外,我确保我的代码的每一行都能正常工作,然后再将这些代码改为使用tensorflow的示例)。
然后训练模型,我正在使用这个成本函数:

cost = tf.reduce_mean(tf.square(y_-y))

我从许多论坛中了解到,当使用Logistic回归时,可能会出现0log(0)的问题,并且添加一个小常量可以解决问题,但是,我不知道是否存在类似的问题对于线性回归,我也尝试添加一个小常数但没有运气,我已经改变了学习率(尝试了小的和更大的值)但是徒劳。
我真的不知道该怎么做,这个例子用来生成随机数据,我所做的只是使用我自己的numpy数组(我确定它是一个numpy数组,不是列表或任何其他类型) ,当我改变这一点时,没有什么能再次发挥作用 我真的很困惑,我不知道我应该尝试什么,我也没有时间在代码中尝试随机修改(我发现甚至不是逻辑),因为我的实习期即将结束,我必须给很快就回来了 此外,我无法在此发布整个代码,因为如果您知道我的意思,我已经签署了保密合同,对此非常抱歉。 我得到的错误是

tensorflow.python.framework.errors.InvalidArgumentError: Nan in summary histogram for: HistogramSummary
 [[Node: HistogramSummary = HistogramSummary[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"](HistogramSummary/tag, W/read)]]

根据我的理解,它不是来自张量板本身(它在变化之前工作正常),但它来自给图表的Nan值。

0 个答案:

没有答案