2016-07-07 66 views
5

Hai câu hỏi:TensorFlow: Thêm lớp Pre-đào tạo Inception Model & Xuất ra đầy đủ hình ảnh Hierarchy

1) Có ai biết nếu tôi có thể thêm các lớp hình ảnh mới với mô hình Inception-v3 trước được đào tạo? Ví dụ, tôi muốn đào tạo TensorFlow trên vô số cờ quốc gia, nhưng tôi cần đảm bảo rằng tôi vẫn có thể nhận ra các hình ảnh từ hệ thống phân cấp ImageNet. Tôi nhận ra rằng có một cách để xóa lớp đầu tiên của Inception và hoàn toàn đào tạo lại mô hình trên các lớp của tôi, nhưng điều này rất hạn chế và tốn thời gian.

2) Ngoài ra, có cách nào để xuất toàn bộ phân cấp chứa thẻ mà hình ảnh nhận được không? Tôi muốn có thể không chỉ thấy cụ thể những gì Inception gắn thẻ hình ảnh như, nhưng tôi muốn xem tất cả các 'synsets' rộng hơn từ ImageNet. Ví dụ, thay vì chỉ nhìn thấy đầu ra "đồ chơi poodle", tôi quan tâm đến "Animal/thuần động vật/Chó/Poodle/đồ chơi poodle".

Mọi câu trả lời đều được đánh giá cao.

Trả lời

2

1) Lớp đầu ra là softmax, có nghĩa là nó có số nơ-ron được xác định trước, mỗi một được xác định cho một lớp cụ thể. Về mặt kỹ thuật, bạn có thể thực hiện Network Surgery để nó có thêm một nơron trong lớp đầu ra sẽ đại diện cho lớp mới của bạn. Nhưng bạn sẽ phải thực hiện đào tạo bổ sung cho mạng của bạn để nó cập nhật tất cả các trọng số của nó để tính đến lớp mới. Tin xấu - có thể mất một lúc kể từ khi cập nhật sẽ ảnh hưởng đến toàn bộ mạng và mạng là GIANT. Tin tốt lành - sự thay đổi như vậy trong mạng hiện tại bị pretrained sẽ nhanh hơn việc học mọi thứ từ đầu.

2) Điều gì khiến bạn nghĩ rằng hệ thống phân cấp như vậy tồn tại? Bạn không thể biết bất cứ điều gì về đại diện nội bộ của dữ liệu cho chắc chắn. Tất nhiên, bạn có thể kiểm tra hoạt động của các tế bào thần kinh trong mỗi chức năng và thậm chí hình dung chúng ... Nhưng bạn sẽ phải cố gắng hiểu những gì các hoạt động này có ý nghĩa riêng của bạn. Và có lẽ bạn sẽ không tìm thấy bất kỳ hệ thống phân cấp nào mà bạn mong đợi để xem. Vì vậy, để tổng kết - hiểu cách ANN đại diện cho dữ liệu nội bộ không phải là nhiệm vụ dễ dàng. Thực ra - cực kỳ khó khăn.

đề nghị đọc thêm: https://github.com/tensorflow/models/tree/master/inception

Chú ý đến this part của doc - nó có liên quan chặt chẽ với bạn # 1

3
  1. Đây là câu hỏi có liên quan: How to get existing model to recognize additional classes?

đây là một số giải thích: https://github.com/tensorflow/models/issues/2510.

Vì vậy, có thể bằng cách nào đó mô hình finetune nếu có điểm kiểm tra mô hình. Dưới đây là liên kết repo với ví dụ về finetuning: https://github.com/tensorflow/models/tree/master/research/slim/

  1. Có thể để có được tên nút và sên có thể đọc được con người cho các lớp học, vì vậy bạn có thể thực hiện liên kết của nhãn hiệu của các nút theo thể loại . Nhưng nó là tốn thời gian.
2

Có thể, gần đây tôi đã làm điều gì đó rất giống nhau, trong trường hợp của tôi là lá thực vật có lá và lá cây khỏe mạnh. Việc khởi động v3 đã được đào tạo, những gì bạn sẽ làm là chuyển giao học tập. Chuyển giao học tập là một kỹ thuật mà các phím tắt rất nhiều công việc này bằng cách lấy một mô hình được đào tạo đầy đủ cho một tập hợp các loại như ImageNet, và retrains từ trọng lượng hiện có cho các lớp học mới.

Link: Image Retraining at tensorflow.org

Nguồn Video: YouTube video tutorial, Hvass Laboratories có một số tài nguyên video tuyệt vời để khắc phục câu hỏi của bạn.

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