2016-07-30 30 views
8

Tôi đã xây dựng một mạng lưới thần kinh chập mạch trong dòng chảy. Nó được đào tạo và bây giờ tôi đang giải nén nó và thực hiện các đánh giá.Hoạt động Enorue Tensorflow đã bị hủy

import main 
import Process 
import Input 

eval_dir = "/Users/Zanhuang/Desktop/NNP/model.ckpt-250" 
checkpoint_dir = "/Users/Zanhuang/Desktop/NNP/checkpoint" 

def evaluate(): 
    with tf.Graph().as_default() as g: 
    images, labels = Process.eval_inputs() 
    forward_propgation_results = Process.forward_propagation(images) 
    init_op = tf.initialize_all_variables() 
    saver = tf.train.Saver() 
    top_k_op = tf.nn.in_top_k(forward_propgation_results, labels, 1) 

    with tf.Session(graph=g) as sess: 
    tf.train.start_queue_runners(sess=sess) 
    sess.run(init_op) 
    saver.restore(sess, eval_dir) 
    print(sess.run(top_k_op)) 


def main(argv=None): 
    evaluate() 

if __name__ == '__main__': 
    tf.app.run() 

Thật không may, một lỗi lạ đã xuất hiện và tôi không biết tại sao.

W tensorflow/core/kernels/queue_base.cc:2 
W tensorflow/core/kernels/queue_base.cc:294] _0_input_producer: Skipping cancelled enqueue attempt with queue not closed 
W tensorflow/core/kernels/queue_base.cc:294] _1_batch/fifo_queue: Skipping cancelled enqueue attempt with queue not closed 
E tensorflow/core/client/tensor_c_api.cc:485] Enqueue operation was cancelled 
    [[Node: batch/fifo_queue_enqueue = QueueEnqueue[Tcomponents=[DT_FLOAT, DT_INT32], _class=["loc:@batch/fifo_queue"], timeout_ms=-1, _device="/job:localhost/replica:0/task:0/cpu:0"](batch/fifo_queue, Cast_1, Cast)]] 
E tensorflow/core/client/tensor_c_api.cc:485] Enqueue operation was cancelled 
    [[Node: batch/fifo_queue_enqueue = QueueEnqueue[Tcomponents=[DT_FLOAT, DT_INT32], _class=["loc:@batch/fifo_queue"], timeout_ms=-1, _device="/job:localhost/replica:0/task:0/cpu:0"](batch/fifo_queue, Cast_1, Cast)]] 
E tensorflow/core/client/tensor_c_api.cc:485] Enqueue operation was cancelled 
    .... 
    [[Node: batch/fifo_queue_enqueue = QueueEnqueue[Tcomponents=[DT_FLOAT, DT_INT32], _class=["loc:@batch/fifo_queue"], timeout_ms=-1, _device="/job:localhost/replica:0/task:0/cpu:0"](batch/fifo_queue, Cast_1, Cast)]] 
E tensorflow/core/client/tensor_c_api.cc:485] Enqueue operation was cancelled 
    [[Node: batch/fifo_queue_enqueue = QueueEnqueue[Tcomponents=[DT_FLOAT, DT_INT32], _class=["loc:@batch/fifo_queue"], timeout_ms=-1, _device="/job:localhost/replica:0/task:0/cpu:0"](batch/fifo_queue, Cast_1, Cast)]] 
W tensorflow/core/kernels/queue_base.cc:294] _1_batch/fifo_queue: Skipping cancelled enqueue attempt with queue not closed 
... 
W tensorflow/core/kernels/queue_base.cc:294] _1_batch/fifo_queue: Skipping cancelled enqueue attempt with queue not closed 
E tensorflow/core/client/tensor_c_api.cc:485] Enqueue operation was cancelled 

Đây chỉ là một phần của nó.

+1

Đó là một thông điệp thông tin vô hại đó được gỡ bỏ trong các phiên bản mới hơn của tensorflow –

+1

Tôi có Tensorflow 9.0 là phiên bản mới nhất và bản dựng hàng đêm, nó cũng không cho phép tôi tiếp tục chạy chương trình –

+0

Không rõ ràng thông điệp này có phải là lỗi hay không. Tôi sẽ bỏ qua nó và cố gắng gỡ lỗi vấn đề thực tế. IE, là những người chạy hàng đợi enqueueing bất cứ điều gì trên hàng đợi (nhìn vào queue.size() sau khi bắt đầu chúng) –

Trả lời

20

Cập nhật từ trò chuyện - chương trình chạy thành công và các thư được in là do các chuỗi giết Python trong khi chúng đang chạy khi quá trình thoát.

Các thông điệp vô hại nhưng có thể tránh được chúng bằng cách dừng chuỗi theo cách thủ công bằng mẫu bên dưới.

coord = tf.train.Coordinator() 
threads = tf.train.start_queue_runners(sess=sess, coord=coord) 
<do stuff> 
coord.request_stop() 
coord.join(threads) 
+1

Tôi vẫn nhận được nó trong TensorFlow 1,1, bất kỳ lý do nó vẫn còn xung quanh? – martianwars

0

Mọi thứ hoạt động chính xác và sự cố xảy ra ở giai đoạn cuối cùng khi python cố gắng xóa chuỗi. Để làm điều này đúng cách bạn nên tạo một train.Coordinator và vượt qua nó để queue_runner (không cần bạn để vượt qua sess, như phiên mặc định sẽ được sử dụng

with tf.Session() as sess: 
    coord = tf.train.Coordinator() 
    threads = tf.train.start_queue_runners(coord=coord) 
    // do your things 
    coord.request_stop() 
    coord.join(threads) 
Các vấn đề liên quan