2017-11-17 142 views
1

我收到了tensorflow中的變量初始化錯誤,有人可以幫我嗎?我在GPU上使用python版本(3.5.4)和TF版本(1.2.1)。如果我從代碼中刪除最後一行然後它的工作,似乎有一些問題與tensorflow和python庫sync之間的差距精細。Tensorflow變量初始化錯誤

import numpy as np 
import tensorflow as tf 

with tf.Session() as sess: 
    init = tf.global_variables_initializer() 
    sess.run(init) 

    in_size = 100             
    h1_size = 10              

    x = tf.placeholder(tf.float32,(None,in_size))     
    w = tf.Variable(tf.random_normal([in_size,h1_size])) 
    b = tf.Variable(tf.ones([h1_size])) 

    xw = tf.matmul(x,w) 
    z = tf.add(xw,b) 

    a = tf.nn.relu(z) 

    yhat = sess.run(a,feed_dict={x:np.random.random([100000,in_size])}) 



Error:- 

FailedPreconditionError: Attempting to use uninitialized value Variable_12 
    [[Node: Variable_12/read = Identity[T=DT_FLOAT, _class=["loc:@Variable_12"], _device="/job:localhost/replica:0/task:0/cpu:0"](Variable_12)]] 

Caused by op 'Variable_12/read', defined at: 
    File "C:\Users\Sachin-PC\Anaconda3\lib\site-packages\spyder\utils\ipython\start_kernel.py", line 245, in <module> 
    main() 
    File "C:\Users\Sachin-PC\Anaconda3\lib\site-packages\spyder\utils\ipython\start_kernel.py", line 241, in main 
    kernel.start() 
    File "C:\Users\Sachin-PC\Anaconda3\lib\site-packages\ipykernel\kernelapp.py", line 477, in start 
    ioloop.IOLoop.instance().start() 
    File "C:\Users\Sachin-PC\Anaconda3\lib\site-packages\zmq\eventloop\ioloop.py", line 177, in start 
    super(ZMQIOLoop, self).start() 
    File "C:\Users\Sachin-PC\Anaconda3\lib\site-packages\tornado\ioloop.py", line 888, in start 
    handler_func(fd_obj, events) 
    File "C:\Users\Sachin-PC\Anaconda3\lib\site-packages\tornado\stack_context.py", line 277, in null_wrapper 
    return fn(*args, **kwargs) 
    File "C:\Users\Sachin-PC\Anaconda3\lib\site-packages\zmq\eventloop\zmqstream.py", line 440, in _handle_events 
    self._handle_recv() 
    File "C:\Users\Sachin-PC\Anaconda3\lib\site-packages\zmq\eventloop\zmqstream.py", line 472, in _handle_recv 
    self._run_callback(callback, msg) 
    File "C:\Users\Sachin-PC\Anaconda3\lib\site-packages\zmq\eventloop\zmqstream.py", line 414, in _run_callback 
    callback(*args, **kwargs) 

回答

0

您需要在初始化變量前聲明變量。下面的代碼應該工作:

in_size = 100             
h1_size = 10  

x = tf.placeholder(tf.float32,(None,in_size))     
w = tf.Variable(tf.random_normal([in_size,h1_size])) 
b = tf.Variable(tf.ones([h1_size])) 

xw = tf.matmul(x,w) 
z = tf.add(xw,b) 
a = tf.nn.relu(z) 

init = tf.global_variables_initializer() 

with tf.Session() as sess:  
    sess.run(init)             
    yhat = sess.run(a,feed_dict={x:np.random.random([100000,in_size])}) 
+0

它的工作。非常感謝你馬特.... :) –

+0

你很受歡迎,薩欽。你會通過點擊左邊的複選標記來接受答案嗎? – MatthewScarpino

+0

當然,馬特,我做到了。我並沒有意識到這一點。 –