tensorflow由于未初始化变量所导致的错误

 

 版权声明:本文为博主原创文章,如需转载请注明出处,谢谢。 https://blog.csdn.net/qq_38542085/article/details/78742295

初始代码

import pandas as pd
import numpy as np
import tensorflow as tf train_input_data = pd.read_excel('new_data/4.12.2.xlsx',header=None,sheetname='train') train_input_data = np.array(train_input_data).ravel() train_input_data = list(train_input_data) train_input_data = tf.constant(train_input_data,dtype=tf.float32) train_output_data = train_input_data test_input_data = pd.read_excel('new_data/4.12.2.xlsx',header=None,sheetname='test') test_input_data = np.array(test_input_data).ravel() test_input_data = list(test_input_data) test_input_data = tf.constant(test_input_data,shape=[270,1],dtype=tf.float32) test_output_data = test_input_data print(type(train_input_data)) fc_mean, fc_var = tf.nn.moments(train_input_data,axes=[0]) scale = tf.Variable(tf.ones([1])) shift = tf.Variable(tf.zeros([1])) epslion = 0.001 train_input_data = tf.nn.batch_normalization(train_input_data,fc_mean,fc_var,shift,scale,epslion) sess = tf.Session() sess.run(train_input_data)

 

报错:

Traceback (most recent call last):
  File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1327, in _do_call
    return fn(*args)
  File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1306, in _run_fn status, run_metadata) File "/Users/zhangjia/anaconda/lib/python3.6/contextlib.py", line 89, in __exit__ next(self.gen) File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/tensorflow/python/framework/errors_impl.py", line 466, in raise_exception_on_not_ok_status pywrap_tensorflow.TF_GetCode(status)) tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value Variable_1 [[Node: Variable_1/read = Identity[T=DT_FLOAT, _class=["loc:@Variable_1"], _device="/job:localhost/replica:0/task:0/cpu:0"](Variable_1)]] During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/zhangjia/PycharmProjects/太阳能预测/test.py", line 30, in <module> a = sess.run(train_input_data) File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 895, in run run_metadata_ptr) File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1124, in _run feed_dict_tensor, options, run_metadata) File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1321, in _do_run options, run_metadata) File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1340, in _do_call raise type(e)(node_def, op, message) tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value Variable_1 [[Node: Variable_1/read = Identity[T=DT_FLOAT, _class=["loc:@Variable_1"], _device="/job:localhost/replica:0/task:0/cpu:0"](Variable_1)]] Caused by op 'Variable_1/read', defined at: File "/Users/zhangjia/PycharmProjects/太阳能预测/test.py", line 21, in <module> shift = tf.Variable(tf.zeros([1])) File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/tensorflow/python/ops/variables.py", line 199, in __init__ expected_shape=expected_shape) File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/tensorflow/python/ops/variables.py", line 330, in _init_from_args self._snapshot = array_ops.identity(self._variable, name="read") File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/tensorflow/python/ops/gen_array_ops.py", line 1400, in identity result = _op_def_lib.apply_op("Identity", input=input, name=name) File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 767, in apply_op op_def=op_def) File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 2630, in create_op original_op=self._default_original_op, op_def=op_def) File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1204, in __init__ self._traceback = self._graph._extract_stack() # pylint: disable=protected-access FailedPreconditionError (see above for traceback): Attempting to use uninitialized value Variable_1 [[Node: Variable_1/read = Identity[T=DT_FLOAT, _class=["loc:@Variable_1"], _device="/job:localhost/replica:0/task:0/cpu:0"](Variable_1)]]

错误原因:

在初始的代码中,由于没有使用tf.global_variables_initializer()函数来对变量初始化,导致代码出现错误

解决方法:

在代码中加入tf.global_variables_initializer()函数来对数据进行初始化之后便可解决

正确代码

import pandas as pd
import numpy as np
import tensorflow as tf train_input_data = pd.read_excel('new_data/4.12.2.xlsx',header=None,sheetname='train') train_input_data = np.array(train_input_data).ravel() train_input_data = list(train_input_data) train_input_data = tf.constant(train_input_data,dtype=tf.float32) train_output_data = train_input_data test_input_data = pd.read_excel('new_data/4.12.2.xlsx',header=None,sheetname='test') test_input_data = np.array(test_input_data).ravel() test_input_data = list(test_input_data) test_input_data = tf.constant(test_input_data,shape=[270,1],dtype=tf.float32) test_output_data = test_input_data fc_mean, fc_var = tf.nn.moments(train_input_data,axes=[0]) scale = tf.Variable(tf.ones([1])) shift = tf.Variable(tf.zeros([1])) epslion = 0.001 train_input_data = tf.nn.batch_normalization(train_input_data,fc_mean,fc_var,shift,scale,epslion) sess = tf.Session() init = tf.global_variables_initializer() sess.run(init)

data, vocabulary = prepare_test_data(config)
model = CaptionGenerator(config)
init = tf.global_variables_initializer()
sess.run(init)
model.load(sess, FLAGS.model_file)
tf.get_default_graph().finalize()
model.test(sess, data, vocabulary)


转载于:https://www.cnblogs.com/sddai/p/10557675.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值