2016-05-10 21 views
20

Có cách nào để vẽ cả tổn thất đào tạo và tổn thất hợp lệ trên cùng một đồ thị không?TensorBoard - Đào tạo lô và xác nhận lỗ trên cùng một biểu đồ?

Thật dễ dàng để có hai bản tóm tắt vô hướng riêng cho từng cá nhân, nhưng điều này đặt chúng trên các biểu đồ riêng biệt. Nếu cả hai được hiển thị trong cùng một biểu đồ thì sẽ dễ dàng hơn để thấy khoảng cách giữa chúng và chúng có bắt đầu phân kỳ do dư thừa hay không.

Có cách nào được xây dựng để thực hiện việc này không? Nếu không, một công việc xung quanh? Cảm ơn bạn rất nhiều!

+0

Tại thời điểm này (5/24) không có cách nào được hỗ trợ chính thức để thực hiện việc này. Nhưng chúng tôi đang tìm kiếm thêm một hệ thống tổng quát hơn để ràng buộc các nguồn dữ liệu khác nhau để hình dung cùng nhau, và điều này sẽ được hỗ trợ bởi hệ thống đó. – dandelion

+0

@ bồ công anh hiện tại vẫn không được hỗ trợ? – reese0106

+0

[đây là giải pháp sử dụng keras] (https://stackoverflow.com/a/48393723/3609568) – user66081

Trả lời

13

Công việc mà tôi đang làm là sử dụng hai số SummaryWriter với thư mục nhật ký khác nhau cho tập huấn luyện và xác thực chéo tương ứng. Và bạn sẽ thấy một cái gì đó như thế này:

enter image description here

+0

Cảm ơn! Tôi đã nghĩ cách tiếp cận này có thể hiệu quả, nhưng chưa thử. Tất nhiên, điều này làm cho việc so sánh chạy cùng với các xác nhận hợp lệ hơn tẻ nhạt/lộn xộn, nhưng ít nhất đó là một lựa chọn. Tôi sẽ để câu hỏi mở ngay bây giờ mặc dù hy vọng rằng chúng ta có thể tìm ra một giải pháp để giải quyết nó mà không phải từ bỏ cái gì khác. – golmschenk

+0

Chắc chắn, Đợi tin tốt của bạn :) BTW, như để so sánh giữa các lần chạy cũng như xác thực, tôi không nghĩ đó là một vấn đề tuy nhiên, vì bạn chỉ có thể lưu chúng vào "run1/train", "run2/train "," run1/validation ", v.v. Và kiểm tra các đường cong bạn muốn khi so sánh. –

+0

Làm thế nào để bạn có được 2 chạy trên biểu đồ CÙNG. khi tôi cố gắng tạo 2 bản tóm tắt với các nhà văn khác nhau nhưng cùng tên, tôi đã nhận được 'Thua' và' Thua_1' – michael

8

Thay vì hiển thị hai dòng riêng biệt, bạn có thể thay vì mưu sự khác biệt giữa xác nhận và đào tạo lỗ như tóm tắt vô hướng riêng của mình để theo dõi sự phân kỳ.

Điều này không cung cấp nhiều thông tin về một cốt truyện (so với thêm hai tóm tắt), nhưng nó giúp với việc có thể so sánh nhiều lần chạy (và không thêm nhiều tóm tắt cho mỗi lần chạy).

2

Tensorboard là công cụ thực sự tốt đẹp nhưng theo tính chất khai báo của nó có thể làm cho nó khó khăn để có được nó để làm chính xác những gì bạn muốn.

Tôi khuyên bạn nên thanh toán Losswise (https://losswise.com) để vẽ và theo dõi các chức năng mất mát thay thế cho Tensorboard. Với Losswise bạn xác định chính xác những gì cần được vẽ đồ thị với nhau:

import losswise 

losswise.set_api_key("project api key") 
session = losswise.Session(tag='my_special_lstm', max_iter=10) 
loss_graph = session.graph('loss', kind='min') 

# train an iteration of your model... 
loss_graph.append(x, {'train_loss': train_loss, 'validation_loss': validation_loss}) 
# keep training model... 

session.done() 

Và sau đó bạn sẽ có được cái gì đó trông giống như:

Training and test loss on the same graph

Chú ý cách dữ liệu được đưa tới một đồ thị đặc biệt một cách rõ ràng thông qua loss_graph.append cuộc gọi, dữ liệu mà sau đó xuất hiện trong bảng điều khiển của dự án của bạn.

Ngoài ra, đối với ví dụ trên, Losswise sẽ tự động tạo bảng có các cột cho min(training_loss)min(validation_loss) để bạn có thể dễ dàng so sánh thống kê tóm tắt trong các thử nghiệm của mình. Rất hữu ích để so sánh kết quả trên một số lượng lớn các thử nghiệm.

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