2016-01-06 25 views
19

Có cách nào để tính toán chi phí thời gian cho mỗi nút trong mạng TensorFlow không?
Tôi thấy khó xác định vị trí tắc nghẽn hiệu suất.Làm thế nào để cấu hình mạng TensorFlow?

EDIT: Timeline profiler thực sự tuyệt vời (https://stackoverflow.com/a/37774470/3632556).

+4

Có thể trùng lặp: http://stackoverflow.com/questions/34293714/tensorflow-can-i-measure-the-execution-time-of-individual-operations – user3559888

Trả lời

2

Ngay bây giờ cách tốt nhất bên ngoài là biên dịch với trình thu thập CPU/GPU, nhưng điều này phải được thực hiện thủ công bằng cách thay đổi tùy chọn trong các tệp BUILDtensorflow.bzl (không chắc chắn vị trí).

Sau đó bạn có thể nhận được thông tin hồ sơ về những chức năng đang dùng nhiều thời gian nhất, vv Đó là tùy thuộc vào bạn, bạn có thể chạy bằng cách sử dụng gperftools và hình dung bởi pprof

vì code TensorFlow được liên kết qua swig, i' m không chắc chắn 100% sẽ dễ dàng nhận được các ký hiệu khi đọc tiểu sử qua pprof như thế nào. Bạn có thể trỏ nó đến swig .so tệp đã được tạo.

Hãy thử và cho chúng tôi biết nếu nó phù hợp với bạn!

2

Nếu bạn muốn tìm lượng thời gian được sử dụng cho mỗi thao tác tại TF, bạn có thể thực hiện việc này trong tensorboard bằng cách sử dụng runtime statistics. Bạn sẽ cần phải làm một cái gì đó như thế này (kiểm tra đầy đủ các ví dụ trong liên kết nêu trên):

run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE) 
run_metadata = tf.RunMetadata() 
sess.run(<values_you_want_to_execute>, options=run_options, run_metadata=run_metadata) 
your_writer.add_run_metadata(run_metadata, 'step%d' % i) 

Tốt hơn so với chỉ in nó, bạn có thể nhìn thấy nó trong tensorboard:

Ngoài , nhấp vào một nút sẽ hiển thị tổng bộ nhớ chính xác, thời gian tính toán và kích thước đầu ra tensor.

Hiện tại, lưu lượng có debugger. Đây là một hướng dẫn về cách sử dụng nó.

[1]: https://www.tensorflow.org/get_started/graph_viz#

+0

Phương thức hiện tại (cuối năm 2017, TensorFlow 1.4) Dòng thời gian đang sử dụng [ProfilerHook] (https://www.tensorflow.org/api_docs/python/tf/train/ProfilerHook). Điều này làm việc với MonitoredSessions trong tf.Estimator nơi tf.RunOptions không có sẵn. – Urs

1

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler

Các tính năng chính: thông số mô hình

Measure, hoạt động phao, hình dạng tensor.

Thời gian thực thi hồ sơ, kích thước bộ nhớ được yêu cầu và vị trí thiết bị.

Kiểm tra hình dạng của các điểm kiểm tra của điểm kiểm tra và giá trị của chúng.

Nhóm chọn lọc, bộ lọc, tài khoản và đơn đặt hàng có chọn lọc.

+0

Câu hỏi cho biết * "Có cách nào để tính chi phí thời gian cho mỗi nút trong mạng TensorFlow không?" * Bạn có thể cải thiện câu trả lời của mình bằng cách hiển thị cách sử dụng công cụ để "tính toán chi phí thời gian" không? – Pang

+0

Quá xấu, không tìm thấy liên kết –

Các vấn đề liên quan