首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Tensorflow Nan,我哪里错了?

Tensorflow Nan,我哪里错了?
EN

Stack Overflow用户
提问于 2018-01-08 03:04:49
回答 1查看 99关注 0票数 0

我是新来的,所以请原谅我。我的任务是创建一个模型,根据90个特征预测一些连续的数字(稍后我会将它们减少到57个)。我在网上看到了这个例子--“波士顿房价预测”,看起来和我需要的非常相似。然而,我知道我会遇到麻烦(因为模型不是那么容易被采用的),现在的麻烦是,我有一个Nan作为估计值。我的代码如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import tensorflow as tf
import numpy as np

X_train = np.genfromtxt('data/train500X.csv', delimiter=',', dtype=float)
Y_train = np.genfromtxt('data/train500Y.csv', delimiter=',', dtype=float)
X_test = np.genfromtxt('data/test100X.csv', delimiter=',', dtype=float)
Y_test = np.genfromtxt('data/test100Y.csv', delimiter=',', dtype=float)

total_len = X_train.shape[0]
# Parameters
learning_rate = 0.001
training_epochs = 500
batch_size = 10
display_step = 1
dropout_rate = 0.9
# Network Parameters
n_hidden_1 = 90  # 1st layer number of features
n_hidden_2 = 200  # 2nd layer number of features
n_hidden_3 = 200
n_hidden_4 = 256
n_input = X_train.shape[1]
n_classes = 1

# tf Graph input
x = tf.placeholder("float32", [None, 90])
y = tf.placeholder("float32", [None])

# Create model
def multilayer_perceptron(x, weights, biases):
    # Hidden layer with RELU activation
    layer_1 = tf.add(tf.matmul(x, weights['h1']), biases['b1'])
    layer_1 = tf.nn.relu(layer_1)

    # Hidden layer with RELU activation
    layer_2 = tf.add(tf.matmul(layer_1, weights['h2']), biases['b2'])
    layer_2 = tf.nn.relu(layer_2)

    # Hidden layer with RELU activation
    layer_3 = tf.add(tf.matmul(layer_2, weights['h3']), biases['b3'])
    layer_3 = tf.nn.relu(layer_3)

    # Hidden layer with RELU activation
    layer_4 = tf.add(tf.matmul(layer_3, weights['h4']), biases['b4'])
    layer_4 = tf.nn.relu(layer_4)

    # Output layer with linear activation
    out_layer = tf.matmul(layer_4, weights['out']) + biases['out']
    return out_layer


# Store layers weight & bias
weights = {
    'h1': tf.Variable(tf.random_normal([n_input, n_hidden_1], 0, 0.1)),
    'h2': tf.Variable(tf.random_normal([n_hidden_1, n_hidden_2], 0, 0.1)),
    'h3': tf.Variable(tf.random_normal([n_hidden_2, n_hidden_3], 0, 0.1)),
    'h4': tf.Variable(tf.random_normal([n_hidden_3, n_hidden_4], 0, 0.1)),
    'out': tf.Variable(tf.random_normal([n_hidden_4, n_classes], 0, 0.1))
}
biases = {
    'b1': tf.Variable(tf.random_normal([n_hidden_1], 0, 0.1)),
    'b2': tf.Variable(tf.random_normal([n_hidden_2], 0, 0.1)),
    'b3': tf.Variable(tf.random_normal([n_hidden_3], 0, 0.1)),
    'b4': tf.Variable(tf.random_normal([n_hidden_4], 0, 0.1)),
    'out': tf.Variable(tf.random_normal([n_classes], 0, 0.1))
}

# Construct model
pred = multilayer_perceptron(x, weights, biases)

# Define loss and optimizer
cost = tf.reduce_mean(tf.square(tf.transpose(pred) - y))
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)

# Launch the graph
with tf.Session() as sess:
    sess.run(tf.initialize_all_variables())

    # Training cycle
    for epoch in range(training_epochs):
        avg_cost = 0.
        total_batch = int(total_len / batch_size)
        # Loop over all batches
        for i in range(total_batch - 1):
            batch_x = X_train[i * batch_size:(i + 1) * batch_size]
            batch_y = Y_train[i * batch_size:(i + 1) * batch_size]

            # Run optimization op (backprop) and cost op (to get loss value)
            _, c, p = sess.run([optimizer, cost, pred], feed_dict={x: batch_x,
                                                                   y: batch_y})
            # Compute average loss
            c += c / total_batch
            # print(c) #c = nan???? total_batch = 50
            # print("what is here")
            # print(tf.is_finite(c, name=None))

        # sample prediction
        label_value = batch_y
        estimate = p
        err = label_value - estimate
        print("num batch:", total_batch)

        # Display logs per epoch step
        if epoch % display_step == 0:
            print("Epoch:", '%04d' % (epoch + 1), "cost=", \
                  "{:.9f}".format(avg_cost))
            print("[*]----------------------------")
            for i in range(3):
                print("label value:", label_value[i], \
                      "estimated value:", estimate[i])
            print("[*]============================")
    exit()
    print("Optimization Finished!")

    # Test model
    correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1))
    # Calculate accuracy
    accuracy = tf.reduce_mean(tf.cast(S, "float32"))
    print("Accuracy:", accuracy.eval({x: X_test, y: Y_test}))

我的一行训练数据看起来像这样:(train500X.csv)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0,1,1,1,1,0,20,36,4194304,8,7,1,4,3420,79691776,528594,3191,525403,349114,176,7,0.47922,0.700034,84.54,0,1,14.68,0,0,0,0,0,11215940,5091688,31.22,0,0,0,72,0,0,0,4,1000000000,4,17179869184,2133000000,4194300,0,0,57.14,0,3.39,37.52,0,0,0,0,0,61645484,4206508,6.39,33.49,213.6,40881.085,7,0,0,0,4,2500000000,8,68719476736,2133000000,8388604,0,0,0,752.51953125,2463.5,5523,46881,54734,1146164,194866,0.001020011479174,10.90673828125,0,1529.19102,367799.963702

我的标签数据行如下所示:(train500Y.csv)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
24407

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
num batch: 50
Epoch: 0017 cost= 0.000000000
[*]----------------------------
label value: 7228.0 estimated value: [ nan]
label value: 43743.0 estimated value: [ nan]
label value: 15087.0 estimated value: [ nan]
[*]============================

提前谢谢你!我们会考虑任何指引和建议。

附言:如果你有更好的想法或例子可以让我学习,请推荐我。

EN

回答 1

Stack Overflow用户

发布于 2018-01-09 03:44:23

问题出在数据规范化上

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

https://stackoverflow.com/questions/48143753

复制
相关文章
gitea 使用jenkins 自动ci
我目前使用的代码仓库是使用 gitea搭建而成的,详细参见https://git.zeekling.cn, 最近在看redis源码于是就想着加个自动ci的东西。
zeekling
2022/08/26
1.4K0
gitea 使用jenkins 自动ci
Jenkins实战(二):Jenkins各项配置选项
从正式使用Jenkins之前,将会逐步接触到Jenkins的各种配置,通过各种配置来完成各项不同的工作。本文将简单介绍一下Jenkins中的各项配置选项,以便后续使用过程中能够灵活使用。
xcbeyond
2020/03/26
1.5K0
iOS持续集成(CI)——Jenkins
通过终端执行 brew info jenkins 获知jenkins需要java1.7以上环境。jenkins 默认使用的端口是8080
羊羽shine
2019/05/29
1K0
eclipse里没有server选项怎么办(eclipse中没有server选项)
用eclipese写网页很多时候需要配置tomcat,但有些朋友跟着网上的教程配置发现eclipse->【Window】->【Preferences】里没有【server】从而配置不了Runtime Environment。所以需要通过eclipse进行安装。 下面给出解决办法 首先,获取你的eclipse的版本类型,点击【help】->【about eclipse IDE】
全栈程序员站长
2022/08/01
1.3K0
eclipse里没有server选项怎么办(eclipse中没有server选项)
CircleCI vs Travis CI vs Jenkins
选择CI解决方案并没有灵丹妙药。您的选择将取决于您的团队规模,编程语言以及诸如个人喜好之类的简单内容。这就是为什么根据上述标准比较每个工具的特性很重要的原因。但是,某些工具已在市场上赢得了领导者的地位。这些领导者包括CircleCI,Travis CI和Jenkins。
DevOps云学堂
2020/01/16
2.2K0
CircleCI vs Travis CI vs Jenkins
30分钟搞定 Jenkins CI
你想在本地设置中使用 Jenkins CI 进行实验吗?在本文中,我们将设置一个本地 Jenkins CI 服务,为一个简单的 Spring Boot Maven 项目创建一个构建工作,并将创建的 Docker 镜像推送到 DockerHub。这将是一个本地实验的设置,但如果你想尝试一个 Jenkins 插件,它会非常方便。
LinuxSuRen
2019/06/17
9380
使用Jenkins搭建CI服务器
  Jenkins是一个开源的跨平台的CI工具,它可以部署在Windows、Linux等平台上,并且Jenkins提供了非常丰富的插件来帮助完成编译、测试、部署等工作。   本文将介绍在Windows平台上使用Jenkins完成.Net Core应用的持续集成环境搭建,其主要内容有:
星哥玩云
2022/07/24
9000
使用Jenkins搭建CI服务器
eclipse首选项里面没有Server(eclipse的server视图)
①在软件eclipse下的Help->InstallNew Software->中,在Work with中点击Add,如下,加入Name——”Kepler” repository;Location——http://download.eclipse.org/releases/kepler
全栈程序员站长
2022/08/01
1.4K0
eclipse首选项里面没有Server(eclipse的server视图)
TeamCity VS Jenkins:选择正确的CI / CD工具
每个软件开发周期都涉及三个主要阶段:构建,测试和部署。这三个阶段中的任何一个滞后都会导致产品发布的延迟。为了避免此类延迟,组织依靠CI / CD工具来自动化这些过程。但是最近,随着对CI / CD工具的快速需求,选择泛滥,选择正确的工具可能是艰巨的任务!
用户7466307
2020/07/20
7.3K0
eclipse没有server选项怎么解决
eclipse是一个开放源代码的、基于java的可扩展开发平台。它使用频率十分高,然而当使用它部署项目时候,经常会发现一个重要的问题就是打开eclipse之后没有了server选项,那么该怎么解决这个问题呢?
全栈程序员站长
2022/07/23
2.6K0
eclipse没有server选项怎么解决
eclipse设置中没有server选项[通俗易懂]
用eclipse准备配置tomcat,发现配置中没有server选项,参考各种解决方法之后成功解决。
全栈程序员站长
2022/08/01
6.5K1
eclipse设置中没有server选项[通俗易懂]
CI与CD之Docker上安装Jenkins
CI:持续集成(Continuous integration,简称 CI),在传统的软件开发环境中,有集成,但是没有持续集成这种说法,长时间的分支与主干脱离,导致分支与主干可能存在较大偏差,在集成代码的时候可能需要花费数小时更久的时间来修复代码,以便最终将代码集成主干(俗称"集成地狱"或"集成灾难");而CI旨在鼓励团队成员进行频繁集成(例如每小时或至少每天一次)来避免这种情况的出现,通过自动检测、拉取、构建和(在大多数情况下)进行单元测试的过程,来保障代码的质量可以进行下一步的使用,这也是持续集成的目的,CI是属于开发人员的自动化流程。
Peyshine
2020/05/19
8460
CI与CD之Docker上安装Jenkins
iOS持续集成(CI)——Jenkins插件配置
xcode 编译工具:到 2017年5月25日的版本是2.0.0 ;算是比较大的版本更新 主要之前的1.4.11对xcode8版本支持的不太好 例如 XCode 8.3,中对xcrun PackageApplication.已经废弃了。也一度导致jenkins服务器的xcode 版本无法升级到最新版本。
羊羽shine
2019/05/29
1.1K0
通过 CLI 管理 Jenkins Server
Jenkins 内置的命令行接口允许管理员通过命令行工具访问并管理 Jenkins。这让我们可以通过脚本自动化的创建配置或执行任务,也就是把 Jenkins 中的配置代码化了。Jenkins 同时支持通过 SSH 和客户端命令行工具 jenkins-cli.jar 进行访问。本文主要介绍如何通过这两种方式用命令行操作 Jenkins。说明:本文的演示环境为 Ubuntu 16.04。
星哥玩云
2022/07/24
6760
通过 CLI 管理 Jenkins Server
通过 Ansible 创建 Jenkins Server
创建 CI 流程的第一件事应该是安装 CI 工具,本文以最常见的 Jenkins 为例,介绍如何使用 Ansible 自动安装 Jenkins Server。说明:本文的演示环境为 Ubuntu 16.04。
星哥玩云
2022/07/24
5540
通过 Ansible 创建 Jenkins Server
Jenkins CI 自动构建与 C-STAT 代码
我们大多数人都知道,为嵌入式软件设置 CI/CD 总是有局限性或挑战性的,并且我们还看到在某些情况下仍然没有其他可用的选择,这会导致工作量加大和代码质量缺失。
LinuxSuRen
2019/11/26
1.2K0
Jenkins CI 自动构建与 C-STAT 代码
利用Gitlab和Jenkins做CI(持续集成)
最近用到持续集成顺便总结在这里,都是用的最新版。搭建过程中还有一个demo,提交代码到 gitlab 自动触发 jenkins 任务,自动编译代码和 docker 镜像并上传。
imroc
2018/09/03
7.5K0
利用Gitlab和Jenkins做CI(持续集成)
3天学会Jenkins_8_Jenkins vs Travis-CI, 有何区别
转载注明出处,欢迎关注微信小程序小白AI博客 微信公众号小白AI或者网站 https://xiaobaiai.net或者我的CSDN https://blog.csdn.net/freeape
别打名名
2019/12/23
1.3K0
3天学会Jenkins_8_Jenkins vs Travis-CI, 有何区别
[原创]CI持续集成系统环境---部署Jenkins完整记录
Jenkins通过脚本任务触发,实现代码的自动化分发,是CI持续化集成环境中不可缺少的一个环节。 下面对Jenkins环境的部署做一记录。 -------------------------------------------------------------------------------------- 1)安装java(yum安装java1.7) java环境安装参考:Centos中yum方式安装java [root@115 ~]# java -version java version "1.7
洗尽了浮华
2018/01/23
9950
[原创]CI持续集成系统环境---部署Jenkins完整记录
Jenkins使用总结,2.0 新时代:从 CI 到 CD
Jenkins近阶段使用的总结篇,只写了个引子,却一直未动手写完,今天补上。
MavenTalker
2023/03/10
2930
Jenkins使用总结,2.0 新时代:从 CI 到 CD

相似问题

詹金斯失败了.!

12

詹金斯发邮件失败了

10

黄瓜试验通过了,但詹金斯失败了

11

詹金斯:詹金斯不运行TestNG测试

11

詹金斯共同失败

17
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文