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

Tensorflow có thể được sử dụng như thế nào để chia tập dữ liệu Illiad thành dữ liệu đào tạo và kiểm tra trong Python?

Tensorflow là một khuôn khổ học máy được cung cấp bởi Google. Nó là một khung công tác mã nguồn mở được sử dụng kết hợp với Python để triển khai các thuật toán, ứng dụng học sâu và hơn thế nữa. Nó được sử dụng trong nghiên cứu và cho mục đích sản xuất.

Gói 'tensorflow' có thể được cài đặt trên Windows bằng dòng mã bên dưới -

pip install tensorflow

Tensor là một cấu trúc dữ liệu được sử dụng trong TensorFlow. Nó giúp kết nối các cạnh trong một sơ đồ luồng. Sơ đồ luồng này được gọi là 'Biểu đồ luồng dữ liệu'. Tensors không là gì khác ngoài một mảng đa chiều hoặc một danh sách.

Chúng có thể được xác định bằng ba thuộc tính chính -

  • Xếp hạng - Nó cho biết về kích thước của tensor. Nó có thể được hiểu là thứ tự của tensor hoặc số kích thước trong tensor đã được xác định.

  • Loại - Nó cho biết về kiểu dữ liệu được liên kết với các phần tử của Tensor. Nó có thể là tensor một chiều, hai chiều hoặc n chiều.

  • Hình dạng - Là số hàng và số cột cùng nhau.

Chúng tôi sẽ sử dụng tập dữ liệu của Illiad, chứa dữ liệu văn bản của ba tác phẩm dịch của William Cowper, Edward (Earl of Derby) và Samuel Butler. Mô hình được đào tạo để xác định người dịch khi một dòng văn bản được đưa ra. Các tệp văn bản được sử dụng đã được xử lý trước. Điều này bao gồm việc xóa đầu trang và chân trang của tài liệu, số dòng và tiêu đề chương.

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.

Ví dụ

Sau đây là đoạn mã -

train_data = all_encoded_data.skip(VALIDATION_SIZE).shuffle(BUFFER_SIZE)
validation_data = all_encoded_data.take(VALIDATION_SIZE)

train_data = train_data.padded_batch(BATCH_SIZE)
validation_data = validation_data.padded_batch(BATCH_SIZE)

sample_text, sample_labels = next(iter(validation_data))
print("The text batch shape is : ", sample_text.shape)
print("The label batch shape is : ", sample_labels.shape)
print("A text example is : ", sample_text[5])
print("A label example is: ", sample_labels[5])

Tín dụng mã - https://www.tensorflow.org/tutorials/load_data/text

Đầu ra

The text batch shape is : (64, 18)
The label batch shape is : (64,)
A text example is : tf.Tensor(
[ 20 391 2 11 144 787 2 3498 16 49 2 0 0 0
   0 0 0 0], shape=(18,), dtype=int64)
A label example is: tf.Tensor(1, shape=(), dtype=int64)

Giải thích

  • Lớp Keras TextVectorization được sử dụng để nhóm / hàng loạt và cung cấp phần đệm cho dữ liệu được vector hóa.

  • Phần đệm là cần thiết vì các ví dụ bên trong một lô cần phải có cùng kích thước và hình dạng, nhưng các ví dụ trong tập dữ liệu có thể không có cùng kích thước.

  • Mỗi dòng văn bản có thể có một số từ khác nhau.

  • Phương thức ‘tf.data.Dataset’ giúp tách và ghép tập dữ liệu.

  • ‘Validation_data’ và ‘train_data’ là tập hợp dữ liệu hàng loạt.

  • Mỗi lô là một cặp (nhiều ví dụ, nhiều nhãn) được biểu diễn dưới dạng mảng.