Rate this post

Để khôi phục sự cố, hãy chỉnh sửa debug_mnist.Py, thay đổi dòng duy nhất:

diff =-(y_*tf.log(y))  

Triển khai ổn định số lượng của chuyển động entropy:

diff = tf.losses.sparse_softmax_cross_entropy (label = y_, logits = lgits)

Chạy lại với cờ -debug như dưới đây:

python -m tensorflow.python.debug.example.debug_mnist --debug

Tại dấu nhắc tfdbg>, nhập lệnh dưới đây:

run -f has_inf_or_nan

Tuyên bố rằng không có tensors nào được gắn cờ là chứa các giá trị nan hoặc inf, và độ chính xác để duy trì và tránh bị kẹt.

Các bài viết liên quan:

Debugging tf-learn Estimators và Experiments

Thử nghiệm là một tập hợp trong tf.Contrib.Kiểm tra ở mức độ tốt hơn Công cụ ước tính. Nó cung cấp một giao diện duy nhất cho giáo dục và so sánh nó với mô hình. Để gỡ lỗi các lời gọi dạy () và eval () tới một đối tượng thử nghiệm, chúng ta có thể sử dụng các đối số từ khóa train_monitors và eval_hooks khi gọi hàm tạo của nó.

Ví dụ:

Từ tensorflow.python nhập gỡ lỗi dưới dạng tf_debug

hooks = [tf_debug.LocalCLIDebug()]  
ex = experiment.Experiment(classifier,  
eval_input_fn=iris_input_fn,  
train_input_fn=iris_input_fn,  
train_steps=FLAGS.train_steps,  
eval_delay_secs=0,  
eval_steps=1,  
train_monitors=hooks,  
eval_hooks=hooks)  
ex.train()  
accuracy_score = ex.evaluate()["accuracy"]  
For building and running the debug_tflearn_iris example inside the experiment mode:  
python -m tensorflow.python.debug.example.debug_tflearn_iris\  
--use_experiment --debug  

LocalCLIDebugHook cũng cho phép chúng tôi định cấu hình watch_fn có thể được sử dụng để chỉ định linh hoạt các Tensors để xem trên một trong các lệnh gọi session.Run (), giống như một đặc điểm của các lần tìm nạp và feed_dict cho các trạng thái khác nhau.

Debugging Keras Models với tfdbg

Để sử dụng TFDBG với Keras, hãy cho phép chương trình phụ trợ của Keras sử dụng một mục tư vấn được bao bọc bởi TFDBG. Để sử dụng trình bao bọc CLI trong quá trình gỡ lỗi:

import tensorflow as tf  
  
from tensorflow.python import debug as tf_debug  
from Keras import backend as keras_backend  
keras_backend.set_session(tf_debug.LocalCLIDebugWrapperSession(tf.Session()))  
# Defining the Keras model below.  
model.fit(...) # This will break into TFDBG CLI.  

Debugging tf-slim với tfdbg

TFDBG hỗ trợ gỡ lỗi đào tạo và đánh giá với tf-slim. Hướng dẫn và đánh giá yêu cầu quy trình công việc gỡ lỗi hơi khác nhau.

Debugging tf-slim với tfdbg

TFDBG hỗ trợ gỡ lỗi TensorFlow của quá trình đào tạo với sự trợ giúp của tf-slim. Đào tạo và đánh giá làm cho các quy trình gỡ lỗi TensorFlow hơi đặc biệt để hoạt động.

import tensorflow as tf  
from tensorflow.python import debug as tf_debug  
#. Code for creating the graph.  
tf.contrib.slim.learning.train(  
train_op,  
logdir,  
number_of_steps=10,  
session_wrapper=tf_debug.LocalCLIDebugWrapper)  

Debugging evaluation

Để gỡ lỗi hệ thống trường học, hãy cung cấp LocalCLIDebugWrapperSession cho đối số session_wrapper của mảnh mai.Mastering.Educate ().

import tensorflow as tf  
# .Code which creates the graph and the eval  
tf.contrib.slim.evaluation.evaluate_once(  
'',  
checkpoint_path,  
logdir,  
eval_op=my_eval_op,  
final_op=my_value_op,  
hooks=[tf_debug.LocalCLIDebugHook()])  

Debugging ngoại tuyến các phiên chạy từ xa

Để thực hiện gỡ lỗi phiên bản TensorFlow trong các phiên bản, chúng tôi có thể sử dụng tệp nhị phân offline_analyzer của tfdbg. Nó hoạt động trên các thư mục dữ kiện được kết xuất. Điều này được thực hiện cho cả API phiên cấp thấp hơn và API thử nghiệm và ước tính mức độ tốt hơn.

Debugging  tf.Sessions từ xa

Trong trường hợp chúng ta có tương tác không chậm trễ với tf. API phiên trong python, chúng tôi có thể định cấu hình proto RunOptions mà chúng tôi gọi là kỹ thuật session.Run () của bạn, bằng cách sử dụng phương pháp tfdbg.

Ví dụ:

For instance:  
import debug as tf_debug   
# ... Code where the session and graph  
run_options = tf.RunOptions()  
tf_debug.watch_graph(  
run_options,  
session.graph,  
session.run(fetches, feed_dict=feeds, options=run_options)  
# specify different directories for many run() calls.  
debug_urls=["file:///shared/storage/location/tfdb_dumps_1"])  

Trong môi trường xung quanh mà chúng tôi có quyền truy cập vào thiết bị đầu cuối (chẳng hạn như một máy tính xách tay gần đó có thể được vào cửa chính xác vị trí nhà để xe chung trong đoạn mã trên), chúng tôi có thể tải và kiểm tra các bản ghi trong thư mục bán hàng tại bộ nhớ dùng chung bằng cách nhị phân offline_analyzer của tfdbg.

Ví dụ:

Khám phá kiến ​​trúc Tensorflow và các điều khoản quan trọng

python -m tensorflow.python.debug.cli.offline_analyzer \  
--dump_dir=/shared/storage/location/tfdb_dumps_1  

Phiên cung cấp một cách dễ dàng hơn để tạo kết xuất hệ thống tài liệu có thể được phân tích ngoại tuyến. Để áp dụng nó, hãy gói phần tư vấn của chúng tôi trong tf_debug.DumpingDebugWrapperSession.

Ví dụ:

import debug as tf_debug  
sess = tf_debug.DumpingDebugWrapperSession(  
sess, "/shared/storage/location/tfdbg_dumps_1/",watch_fn=my_watch_fn)  

Đối số watch_fn chấp nhận một Callable cho phép chúng ta định cấu hình các tensor để tuân theo các tham vấn khác nhau.

nd feed_dict để chạy () tên và các trạng thái.

C ++ và các ngôn ngữ khác

Nếu mã phiên bản của chúng tôi được viết bằng C ++ hoặc nói cách khác, chúng tôi có thể sửa đổi bổ sung chủ đề debug_options của RunOptionsto để gỡ lỗi kết xuất có thể được kiểm tra ngoại tuyến. Xem định nghĩa proto để biết thêm thông tin.

Debugging Chạy từ xa Công cụ ước tính và Thử nghiệm tf-learning

Chúng tôi có thể sử dụng DumpingDebugHook không tương tác.

import debug as tf_debug  
hooks = [tf_debug.DumpingDebugHook("/shared/storage/location/tfdbg_dumps_1")]  

Sau đó, hook này có thể được sử dụng theo cách tương tự vì các ví dụ LocalCLIDebugHook được mô tả trước đó trên tệp này. Khi quá trình đánh giá công cụ ước tính hoặc thử nghiệm diễn ra, tfdbg tạo các thư mục có mẫu lệnh gọi sau: / shared / gara / place / tfdbg_dumps_1 / run__. Mỗi danh sách tương ứng với một phiên. Run () đặt tên làm cơ sở cho lệnh gọi suit () hoặc so sánh (). Chúng tôi có thể tải các thư mục và kiểm tra chúng trong giao diện dòng lệnh theo cách ngoại tuyến việc sử dụng offline_analyzer do tfdbg cung cấp.

python -m tensorflow.python.debug.cli.offlineanalyzer \   
dump_dir="/shared/storage/location/tfdbg_dumps_1/run_<epoch_timestamp_microsec>_<uuid>"

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now