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

Làm cách nào để Tensorflow được sử dụng để huấn luyện mô hình với bộ dữ liệu câu hỏi stackoverflow bằng 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.

Nó có các kỹ thuật tối ưu hóa giúp thực hiện các phép toán phức tạp một cách nhanh chóng.

Điều này là do nó sử dụng NumPy và các mảng đa chiều. Các mảng đa chiều này còn được gọi là 'tensors'. Khung hỗ trợ làm việc với mạng nơ-ron sâu. Nó có khả năng mở rộng cao và đi kèm với nhiều bộ dữ liệu phổ biến. Nó sử dụng tính toán GPU và tự động hóa việc quản lý tài nguyên. Nó đi kèm với vô số thư viện máy học, được hỗ trợ tốt và được lập thành tài liệu. Khung có khả năng chạy các mô hình mạng nơ-ron sâu, đào tạo chúng và tạo các ứng dụng dự đoán các đặc điểm liên quan của các bộ dữ liệu tương ứng.

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'. Hàng căng không là gì ngoài mảng nhiều 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 đ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ã -

print("A bag-of-words linear model is built to train the stackoverflow dataset")
binary_model = tf.keras.Sequential([layers.Dense(4)])
binary_model.compile(
   loss=losses.SparseCategoricalCrossentropy(from_logits=True),
   optimizer='adam',
   metrics=['accuracy'])
history = binary_model.fit(
   binary_train_ds, validation_data=binary_val_ds, epochs=10)

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

Đầu ra

A bag-of-words linear model is built to train the stackoverflow dataset
Epoch 1/10
188/188 [==============================] - 4s 19ms/step - loss: 1.2450 - accuracy: 0.5243 -
val_loss: 0.9285 - val_accuracy: 0.7645
Epoch 2/10
188/188 [==============================] - 1s 3ms/step - loss: 0.8304 - accuracy: 0.8172 -
val_loss: 0.7675 - val_accuracy: 0.7895
Epoch 3/10
188/188 [==============================] - 1s 3ms/step - loss: 0.6615 - accuracy: 0.8625 -
val_loss: 0.6824 - val_accuracy: 0.8050
Epoch 4/10
188/188 [==============================] - 1s 3ms/step - loss: 0.5604 - accuracy: 0.8833 -
val_loss: 0.6291 - val_accuracy: 0.8125
Epoch 5/10
188/188 [==============================] - 1s 3ms/step - loss: 0.4901 - accuracy: 0.9034 -
val_loss: 0.5923 - val_accuracy: 0.8210
Epoch 6/10
188/188 [==============================] - 1s 3ms/step - loss: 0.4370 - accuracy: 0.9178 -
val_loss: 0.5656 - val_accuracy: 0.8255
Epoch 7/10
188/188 [==============================] - 1s 3ms/step - loss: 0.3948 - accuracy: 0.9270 -
val_loss: 0.5455 - val_accuracy: 0.8290
Epoch 8/10
188/188 [==============================] - 1s 3ms/step - loss: 0.3601 - accuracy: 0.9325 -
val_loss: 0.5299 - val_accuracy: 0.8295
Epoch 9/10
188/188 [==============================] - 1s 3ms/step - loss: 0.3307 - accuracy: 0.9408 -
val_loss: 0.5177 - val_accuracy: 0.8335
Epoch 10/10
188/188 [==============================] - 1s 3ms/step - loss: 0.3054 - accuracy: 0.9472 -
val_loss: 0.5080 - val_accuracy: 0.8340

Giải thích

  • Mạng nơ-ron được tạo bằng API 'Tuần tự'.

  • Đối với dữ liệu đã được vectơ hóa ở định dạng 'nhị phân', mô hình nhiều từ được đào tạo, đây là mô hình tuyến tính.