【问题标题】:Weights and bias giving Nan权重和偏差给 Nan
【发布时间】:2018-03-05 10:54:12
【问题描述】:
import pandas as pd  
import numpy as np  
from pandas import DataFrame  
from random import shuffle  
import tensorflow as tf  

从 CSV 文件(IMDB 数据集)获取数据

data=pd.read_csv('imdb.csv')  
data.fillna(-1)  
features=data.loc[:,['actor_1_facebook_likes','actor_2_facebook_likes','actor_3_facebook_likes','movie_facebook_likes']].as_matrix()  
labels=data.loc[:,['imdb_score']].as_matrix()  


learning_rate=.01  
training_epochs=2000  
display_steps=50  
n_samples=features.size  

为特征和标签定义占位符:

inputX = tf.placeholder(tf.float32,[None,4])  
inputY = tf.placeholder(tf.float32,[None,1]) 

定义权重和偏差。 权重和偏差都是 NaN。

w = tf.Variable(tf.zeros([4,4]))  
b = tf.Variable(tf.zeros([4]))

y_values = tf.add(tf.matmul(inputX,w),b)  

应用神经网络:

y=tf.nn.softmax(y_values)  
cost=tf.reduce_sum(tf.pow(inputY-y,2))/2*n_samples  
optimizer=tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)  

with tf.Session() as sess:  
          sess.run(tf.global_variables_initializer())  
          for i in range(training_epochs):  
              sess.run(optimizer,feed_dict={inputX:features,inputY:labels})  
              if (i) % display_steps==0:  
                 cc=sess.run(cost,feed_dict={inputX:features,inputY:labels})  
                 print(sess.run(w,feed_dict={inputX:features,inputY:labels}))  

【问题讨论】:

    标签: python pandas tensorflow nan


    【解决方案1】:

    您的学习率太大(尝试以1e-3 开头)。 此外,你的神经网络不会学到任何东西,因为你是从一个权重不能改变的条件开始的:你已经将你的权重初始化为零,这是错误的。

    以这种方式将您的权重初始化更改为随机值:

    w = tf.Variable(tf.truncated_normal([4,4]))
    

    您将能够训练您的网络。 (偏差初始化为 0 即可)

    【讨论】:

    • 是的。我曾经用 std=1 初始化权重,几个 epoch 后权重将变为 NAN,当我更改为 std=1e-2 时,发现训练过程有效。所以权重的初始化非常重要。
    【解决方案2】:

    使用 TensorFlow 库的 add_check_numerics_ops 检查哪个操作为您提供了 nan 值。

    https://www.tensorflow.org/api_docs/python/tf/add_check_numerics_ops

    【讨论】:

      猜你喜欢
      • 2020-04-01
      • 2019-10-14
      • 2021-11-07
      • 2017-02-26
      • 2019-12-29
      • 1970-01-01
      • 2019-08-04
      • 2018-07-27
      • 2017-12-01
      相关资源
      最近更新 更多