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

Làm thế nào để TensorFlow có thể sử dụng để đào tạo một mô hình tuyến tính bằng Python?


Tensorflow là một khuôn khổ học máy do Google cung cấp. Nó là một khung công tác mã nguồn mở được sử dụng cùng 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'. 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 sẽ sử dụng Máy tính xách tay Jupyter để chạy mã. TensorFlow có thể được cài đặt trên Jupyter Notebook bằng cách sử dụng 'pip install tensorflow'.

Làm thế nào để TensorFlow có thể sử dụng để đào tạo một mô hình tuyến tính bằng Python?

Sau đây là mã -

Ví dụ

import tensorflow as tf

A = tf.get_variable("A", initializer=tf.constant([0.1]))
b = tf.get_variable("b", initializer=tf.constant([0.0]))

x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)

my_model = A * x + b

lossVal = tf.reduce_sum(tf.square(my_model − y))

my_optimizer = tf.train.GradientDescentOptimizer(0.01)
train = my_optimizer.minimize(lossVal)

x_train = [1.0, 2.5, 3.8, 4.9]
y_train = [1.7, 3.0, 6.6, 6.8]

with tf.Session() as sess:
   sess.run(tf.global_variables_initializer())
   for i in range(1000):
      sess.run(train, {x:x_train, y:y_train})
      if i%100==0:
         l_cost = sess.run(lossVal, {x:x_train, y:y_train})
         print(f"i: {i} cost: {l_cost}")
   l_A, l_b, l_cost = sess.run([A, b, lossVal], {x:x_train, y:y_train})
   print(f"A: {l_A} b: {l_b} cost: {l_cost}")

Đầu ra

i: 0 cost: 1.7808341979980469
i: 100 cost: 1.6947696208953857
i: 200 cost: 1.691591501235962
i: 300 cost: 1.6913959980010986
i: 400 cost: 1.6913844347000122
i: 500 cost: 1.6913840770721436
i: 600 cost: 1.6913843154907227
i: 700 cost: 1.691383719444275
i: 800 cost: 1.6913838386535645
i: 900 cost: 1.6913845539093018
A: [1.4599526] b: [0.07214472] cost: 1.6913845539093018

Giải thích

  • Nhập các gói bắt buộc và cung cấp bí danh cho nó để dễ sử dụng.

  • Một biến có tên ‘my_model" được xác định, sẽ lưu trữ định dạng chung cho mô hình tuyến tính.

  • Mô hình tuyến tính này được đào tạo bằng cách sử dụng ‘GradientDescentOptimizer’.

  • Việc đào tạo được thực hiện sao cho tổn thất là nhỏ nhất, được đảm bảo bằng cách sử dụng phương pháp "giảm thiểu".

  • Hai danh sách được tạo để lưu trữ dữ liệu đào tạo.

  • Dữ liệu này được đào tạo và các giá trị dự đoán được hiển thị trên bảng điều khiển.