Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >tensorflow2.0逻辑模型每次输出nan权重和偏差

tensorflow2.0逻辑模型每次输出nan权重和偏差
EN

Stack Overflow用户
提问于 2020-10-23 08:36:28
回答 1查看 31关注 0票数 0

我想知道为什么这个逻辑模型每次都会输出权重和偏差nan。有什么可能吗?(仅供参考/训练集: 2082行×91列)

代码语言:javascript
运行
AI代码解释
复制
import tensorflow as tf
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split

features = stock_copy2.iloc[:,:-1]
target = stock_copy2.iloc[:,-1]

x_train, x_test, y_train, y_test = \
train_test_split(features, target, test_size = 0.3, random_state = 1)

tf.random.set_seed(2020)
W = tf.Variable(tf.random.normal([91, 1], mean=0.0))
b = tf.Variable(tf.random.normal([1], mean=0.0))
代码语言:javascript
运行
AI代码解释
复制
# Learning Rate
learning_rate = 0.01

# Hypothesis and Prediction Function
def predict(X):
    z = tf.matmul(X, W) + b
    hypothesis = 1 / (1 + tf.exp(-z))
    return hypothesis

# Training
for i in range(2000+1):

    with tf.GradientTape() as tape:

        hypothesis = predict(x_train)
        cost = tf.reduce_mean(-tf.reduce_sum(y_train*tf.math.log(hypothesis) + (1-y_train)*tf.math.log(1-hypothesis)))        
        W_grad, b_grad = tape.gradient(cost, [W, b])

        W.assign_sub(learning_rate * W_grad)
        b.assign_sub(learning_rate * b_grad)

    if i % 400 == 0:
        print(">>> #%s \n Weights: \n%s \n Bias: \n%s \n cost: %s\n" % (i, W.numpy(), b.numpy(), cost.numpy()))

除了我设置的第一个随机权重和偏差外,输出是这样的。

代码语言:javascript
运行
AI代码解释
复制
Weights: 
[[nan]
 [nan]
 [nan]
 [nan]
 [nan]
 [nan] ....
EN

回答 1

Stack Overflow用户

发布于 2020-10-23 10:02:49

使用固定的学习率进行优化通常是一个坏主意,因为它在最好的情况下会产生次优的收敛结果,但通常会导致模型发散。我使用RMSprop优化器让你的代码收敛(在随机数据上),它会自动调整你的学习速度。

您可以在训练之前定义keras优化器,如下所示

代码语言:javascript
运行
AI代码解释
复制
optimizer = tf.keras.optimizers.RMSprop(learning_rate=0.001, rho=0.9)

然后用它来应用你的胶带渐变:

代码语言:javascript
运行
AI代码解释
复制
optimizer.apply_gradients(zip([W_grad, b_grad], [W,b]))

而不是减去梯度。有关可用的优化器模块的更多信息,请查看https://www.tensorflow.org/api_docs/python/tf/keras/optimizers

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64496678

复制
相关文章
Fortran知识 | 输出结果出现NaN
一旦输出结果出现NaN,编译器不会给出任何错误提示,这个时候该如何调试程序呢? 点击菜单栏的调试,最后一个为XXXX属性,打开对话框,左侧展开 Fortran分类,找到Floating Point选项
fem178
2018/04/08
4.4K0
Fortran知识 | 输出结果出现NaN
xgboost输出特征重要性排名和权重值
根据结构分数的增益情况计算出来选择哪个特征的哪个分割点,某个特征的重要性,就是它在所有树中出现的次数之和。
机器学习AI算法工程
2019/10/28
4.8K0
xgboost输出特征重要性排名和权重值
TensorFlow2.0(7):4种常用的激活函数
激活函数是深度学习,亦或者说人工神经网络中一个十分重要的组成部分,它可以对神经元的接收信息进行非线性变换,将变换后的信息输出到下一层神经元。激活函数作用方式如下公式所示:
统计学家
2019/12/23
1.4K0
TensorFlow2.0(7):4种常用的激活函数
NaN和Infinity,null和undefined
看到这个标题,大家对这4个变量应该都不陌生,但若说起他们的差别或者是举个小栗子判断结果,估计就有点晕乎乎的了。
jojo
2022/04/01
1.2K0
模型评估1(误差、偏差、方差)
1、方差:是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。描述数据离散程度,数据波动性,会影响模型的预测结果。
用户5745385
2019/07/04
1.9K0
模型评估1(误差、偏差、方差)
c/c++ -nan(ind) NAN
nan -- 表示 出错,“不是一个数” not a number 的缩写。 按 IEEE 754 国际标准,当运算中出现无效数据时,给出 NaN. 许多情况会出现,例如 0 除 0,负数开平方,...
acoolgiser
2019/01/17
3.5K0
【tensorflow2.0】使用TPU训练模型
如果想尝试使用Google Colab上的TPU来训练模型,也是非常方便,仅需添加6行代码。
西西嘛呦
2020/08/26
1.2K0
【干货】深度学习最佳实践之权重初始化
【导读】深度学习中有很多简单的技巧能够使我们在训练模型的时候获得最佳实践,比如权重初始化、正则化、学习率等。对于深度学习初学者来说,这些技巧往往是非常有用的。本文主要介绍深度学习中权重和偏差初始化以及
WZEARW
2018/04/13
1.1K0
【干货】深度学习最佳实践之权重初始化
原 NaN和Infinity,null和u
作者:汪娇娇 日期:2016.10.10 看到这个标题,大家对这4个变量应该都不陌生,但若说起他们的差别或者是举个小栗子判断结果,估计就有点晕乎乎的了。 1、NaN和Infinity 那先来说说JavaScript的数据类型,有Number、字符串、布尔值、对象等等,而NaN和Infinity就属于Number类型。先说说它俩的差别: NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示 Infinity; // Infinity表示无限大,当数值超过了JavaScript的Nu
jojo
2018/05/03
1.1K0
模型训练时损失出现Nan,解决方案
解决方法:报错的原因是函数返回值得数量不一致,查看函数返回值数量和调用函数时接收返回值的数量是不是一致,修改一致即可
狼啸风云
2020/10/19
2.6K0
模型训练时损失出现Nan,解决方案
lodash源码分析之NaN不是NaN
本文为读 lodash 源码的第五篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash
对角另一面
2018/01/17
1.8K0
lodash源码分析之NaN不是NaN
暗恋之纯粹,在于不求结果,完全把自己锁闭在一个单向的关系里面。 ——梁文道《暗恋到偷窥》 本文为读 lodash 源码的第五篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 本篇分析的是 eq 函数。 作用与用法 eq 函数用来比较两个值是否相等。遵循的是 SameValueZero 规范。 var obj1 = {test: 1} var obj2 = {test: 1} var obj3 =
对角另一面
2018/03/30
1.9K0
20. 偏差和方差
假设你的训练集,开发集和测试集都来自同一分布。那么你会觉得获取更多的训练数据就可以提高性能,对吗? 尽管更多的数据是无害的,但它并不是总会像我们所期望的那样有用。获取更多的数据需要耗费很多时间。所以,你需要什么什么时候该增加数据量,什么时候不该增加。 机器学习中有两个主要的错误来源:偏差和方差。理解它们有助于你觉得是否添加数据,以及其它提高性能的策略,这将会很好的利用你的时间。 假设你正在构建一个错误率为5%的猫咪识别器。目前,你的训练集错误率为15%,并且你的开发集错误率为16%,在这种情况下,添加
YingJoy_
2018/05/30
3780
20. 偏差和方差
假设你的训练集,开发集和测试集都来自同一分布。那么你会觉得获取更多的训练数据就可以提高性能,对吗? 尽管更多的数据是无害的,但它并不是总会像我们所期望的那样有用。获取更多的数据需要耗费很多时间。所以,你需要什么什么时候该增加数据量,什么时候不该增加。 机器学习中有两个主要的错误来源:偏差和方差。理解它们有助于你觉得是否添加数据,以及其它提高性能的策略,这将会很好的利用你的时间。 假设你正在构建一个错误率为5%的猫咪识别器。目前,你的训练集错误率为15%,并且你的开发集错误率为16%,在这种情况下,添加数据可能不会有太大的帮助。你应该关注其它的办法。实际上,在你的训练集上添加更多的样本只会让你的算法难以在训练集上做的更好。(后面的章节我会解释原因) 如果你在训练集上的错误率为15%(85%的准确率),但是你的目标是5%的错误率(95%的准确率),那么第一个要解决的问题是提高算法在训练集上的性能。你的开发/测试集上的性能通常比训练集差。所以,如果算法在见过的样本上得到了85%的准确率,那么是不可能在没见过的样本上得到95%的准确率的。 假设如上述你的算法在开发集上有16%的错误率(84%的准确率)。我们将这16%的错误分为两部分: • 首先,算法在训练集上的错误率。在本例中,它是15%。我们非正式的认为这是算法的偏差(bias)。 • 其次,算法在开发(或测试)集上比训练集差多少。在本例中,开发集比训练集差1%。我们非正式的认为这是算法的方差(Variance)[1]。 学习算法的一些改变能解决错误的第一个组成部分——偏差,并且提高算法在训练集上的性能;一些改变能解决第二个组成部分——方差,并帮助算法从训练集到开发/测试集上得到更好的泛化[2] 。 为了选择最有希望的改变,了解这两组错误中哪个更值得去解决是非常有用的。 培养你对于偏差和方差的感觉可以帮你在优化算法上有非常大的帮助。
YingJoy_
2018/05/09
6911
TensorFlow和深度学习入门教程
前言 上月导师在组会上交我们用tensorflow写深度学习和卷积神经网络,并把其PPT的参考学习资料给了我们, 这是codelabs上的教程:《TensorFlow and deep learning,without a PhD》 https://codelabs.developers.google.com/codelabs/cloud-tensorflow-mnist/#0 当然需要安装python,教程推荐使用python3。 好多专业词太难译了,查了下,大家有些都是不译的。 比如:dropou
机器学习AI算法工程
2018/03/09
1.4K0
TensorFlow和深度学习入门教程
【TensorFlow2.0】如何搭建网络模型?
我们知道在不考虑输入层的情况下,一个典型的卷积神经网络通常由若干个卷积层、激活层、池化层及全连接层组成,无论是最经典的LeNet5,还是前两天刚出现的MobileNet V3,无一不都包含这些层。今天就带大家学习下如何使用TensorFlow2.0搭建卷积神经网络模型。
用户1508658
2019/07/23
1.2K0
TensorFlow和深度学习入门教程
关键词:Python,tensorflow,深度学习,卷积神经网络 正文如下: 前言 上月导师在组会上交我们用tensorflow写深度学习和卷积神经网络,并把其PPT的参考学习资料给了我们, 这是codelabs上的教程:《TensorFlow and deep learning,without a PhD》 https://codelabs.developers.google.com/codelabs/cloud-tensorflow-mnist/#0 当然需要安装python,教程推荐使用pytho
小莹莹
2018/04/18
1.6K0
TensorFlow和深度学习入门教程
【colab pytorch】模型权重初始化
注意 model.modules() 和 model.children() 的区别:model.modules() 会迭代地遍历模型的所有子层,而 model.children() 只会遍历模型下的一层。
西西嘛呦
2020/08/26
6750
点击加载更多

相似问题

如何绘制简单单层模型的输出(偏差和权重)?

12

TensorFlow线性回归-返回权重、偏差和信息损失的NaN

118

如何更新权重和偏差

10

如何从我的模型中获得权重和偏差?

478

如何从权重/偏差中重现Keras模型?

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档