2015-12-25 29 views
7

Tôi đã quản lý để đào tạo một word2vec với tensorflow và tôi muốn cho các kết quả đó vào một rnn với các tế bào lstm để ghi nhãn chuỗi.Ghi nhãn chuỗi trong TensorFlow

1) Nó không thực sự rõ ràng về cách sử dụng mô hình word2vec được đào tạo của bạn cho một rnn. (Làm thế nào để cung cấp kết quả?)

2) Tôi không tìm thấy nhiều tài liệu về cách triển khai một chuỗi ghi nhãn chuỗi. (Làm cách nào để mang nhãn của tôi?)

Ai đó có thể chỉ cho tôi hướng đi đúng đắn về cách bắt đầu với tác vụ này?

Trả lời

2

Tôi nhận thấy điều này đã được đăng cách đây một thời gian, nhưng tôi thấy this Gist about sequence labelingthis Gist about variable sequence labeling thực sự hữu ích để tìm ra ghi nhãn chuỗi. Đường viền cơ bản (ý chính của Gist):

  1. Sử dụng dynamic_rnn để xử lý việc bỏ mạng để đào tạo và dự đoán. Phương pháp này đã di chuyển xung quanh một số trong API, vì vậy bạn có thể phải tìm nó cho phiên bản của bạn, nhưng chỉ cần Google nó.
  2. Sắp xếp dữ liệu của bạn thành các lô có kích thước [batch_size, sequence_length, num_features] và các nhãn của bạn thành các lô có kích thước [batch_size, sequence_length, num_classes]. Lưu ý rằng bạn muốn nhãn cho mỗi bước thời gian trong chuỗi của bạn.
  3. Đối với các chuỗi có độ dài thay đổi, hãy chuyển giá trị đến đối số sequence_length của trình bao bọc dynamic_rnn cho mỗi chuỗi trong chuỗi của bạn.
  4. Đào tạo RNN rất giống với việc đào tạo bất kỳ mạng thần kinh nào khác khi bạn đã xác định cấu trúc mạng: cấp dữ liệu đào tạo và nhãn mục tiêu và xem nó học!

Và hãy cẩn thận:

  1. Với chuỗi chiều dài thay đổi, bạn sẽ cần phải xây dựng mặt nạ để tính số liệu lỗi của bạn và các công cụ. Đó là tất cả trong liên kết thứ hai ở trên, nhưng đừng quên khi bạn thực hiện các số liệu lỗi của riêng bạn! Tôi chạy vào điều này một vài lần và nó làm cho mạng của tôi trông giống như họ đã làm tồi tệ hơn nhiều về các chuỗi có độ dài thay đổi.
  2. Bạn có thể muốn thêm cụm từ thông thường vào hàm mất của mình. Tôi đã có một số vấn đề hội tụ mà không có điều này.
  3. Tôi khuyên bạn nên sử dụng tf.train.AdamOptimizer với cài đặt mặc định lúc đầu. Tùy thuộc vào dữ liệu của bạn, điều này có thể không hội tụ và bạn sẽ cần điều chỉnh cài đặt. This article thực hiện tốt công việc giải thích các nút bấm khác nhau làm gì. Bắt đầu đọc từ đầu, một số nút bấm được giải thích trước phần Adam.

Hy vọng rằng các liên kết này hữu ích cho những người khác trong tương lai!

6

Tôi khuyên bạn nên bắt đầu bằng cách đọc RNN tutorialsequence-to-sequence tutorial. Họ giải thích làm thế nào để xây dựng LSTMs trong TensorFlow. Một khi bạn cảm thấy thoải mái với điều đó, bạn sẽ phải tìm biến nhúng phù hợp và gán nó bằng cách sử dụng mô hình word2vec đã được đào tạo trước của bạn.

+0

Nhưng bạn sẽ xử lý việc ghi nhãn chuỗi như thế nào? – Milan

+0

Đó là lý do tại sao bạn cần xem xét mã hóa/giải mã trình tự hoặc mã hóa RNN ... nó sẽ ánh xạ chuỗi đầu vào của bạn thành chuỗi các nhãn. Một cách khác là đào tạo CNN trên chuỗi đầu vào của bạn để gán nhãn. – j314erre

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