Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để mã hóa nhiều chuỗi có cùng độ dài bằng Tensorflow và Python?

Nhiều chuỗi có cùng độ dài có thể được mã hóa bằng cách sử dụng ‘tf.Tensor’ làm giá trị đầu vào. Khi mã hóa nhiều chuỗi có độ dài khác nhau cần được mã hóa, nên sử dụng tf.RaggedTensor làm đầu vào. Nếu một tensor chứa nhiều chuỗi ở định dạng đệm / thưa, nó cần được chuyển đổi thành tf.RaggedTensor. Sau đó, phương thức unicode_encode sẽ được gọi trên đó.

Đọc thêm: TensorFlow là gì và cách Keras làm việc với TensorFlow để tạo Mạng thần kinh?

Hãy để chúng tôi hiểu cách biểu diễn chuỗi Unicode bằng Python và thao tác với những chuỗi sử dụng Unicode tương đương. Đầu tiên, chúng tôi tách các chuỗi Unicode thành các mã thông báo dựa trên phát hiện tập lệnh với sự trợ giúp của các mã Unicode tương đương với các mã chuỗi chuẩn.

Chúng tôi đang sử dụng Google Colaboratory để chạy đoạn mã dưới đây. Google Colab hoặc Colaboratory giúp chạy mã Python qua trình duyệt và không yêu cầu cấu hình cũng như quyền truy cập miễn phí vào GPU (Đơn vị xử lý đồ họa). Colaboratory đã được xây dựng trên Jupyter Notebook.

print("When encoding multiple strings of   same lengths, tf.Tensor is used as input")
tf.strings.unicode_encode([[99, 97, 116], [100, 111, 103], [ 99, 111, 119]],output_encoding='UTF-8')
print("When encoding multiple strings with varying length, a tf.RaggedTensor should be used as input:")
tf.strings.unicode_encode(batch_chars_ragged, output_encoding='UTF-8')
print("If there is a tensor with multiple strings in padded/sparse format, convert it to a tf.RaggedTensor before calling unicode_encode")
tf.strings.unicode_encode(
   tf.RaggedTensor.from_sparse(batch_chars_sparse),
   output_encoding='UTF-8')
tf.strings.unicode_encode(
   tf.RaggedTensor.from_tensor(batch_chars_padded, padding=-1),
   output_encoding='UTF-8')

Mã tín dụng:https://www.tensorflow.org/tutorials/load_data/unicode

Đầu ra

When encoding multiple strings of   same lengths, tf.Tensor is used as input
When encoding multiple strings with varying length, a tf.RaggedTensor should be used as input:
If there is a tensor with multiple strings in padded/sparse format, convert it to a tf.RaggedTensor before calling unicode_encode

Giải thích

  • Khi mã hóa nhiều chuỗi có cùng độ dài, tf.Tensor có thể được sử dụng làm đầu vào.
  • Khi mã hóa nhiều chuỗi có độ dài khác nhau, một tf.RaggedTensor có thể được sử dụng làm đầu vào.
  • Khi có một tensor với nhiều chuỗi ở định dạng đệm / thưa, nó cần được chuyển đổi thành tf.RaggedTensor trước khi gọi unicode_encode trên đó.