Bắt đầu ngayBắt đầu miễn phí

Tối ưu hóa với gradient

Bạn được cho một hàm mất mát, \(y = x^{2}\), và mục tiêu là tối thiểu hóa nó. Bạn có thể làm điều này bằng cách tính hệ số góc (slope) bằng thao tác GradientTape() tại các giá trị khác nhau của x. Nếu slope dương, bạn có thể giảm mất mát bằng cách giảm x. Nếu slope âm, bạn có thể giảm mất mát bằng cách tăng x. Đây chính là cách gradient descent hoạt động.

The image shows a plot of y equals x squared. It also shows the gradient at x equals -1, x equals 0, and x equals 1.

Trong thực tế, bạn sẽ dùng một thao tác cấp cao của tensorflow để thực hiện gradient descent tự động. Tuy nhiên, trong bài này, bạn sẽ tự tính slope tại các giá trị x là -1, 1 và 0. Các thao tác sau có sẵn: GradientTape(), multiply(), và Variable().

Bài tập này là một phần của khóa học

Nhập môn TensorFlow bằng Python

Xem khóa học

Hướng dẫn bài tập

  • Định nghĩa x là một biến với giá trị khởi tạo x0.
  • Thiết lập hàm mất mát y bằng x nhân với x. Không sử dụng operator overloading.
  • Thiết lập hàm trả về gradient của y theo x.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

def compute_gradient(x0):
  	# Define x as a variable with an initial value of x0
	x = ____(x0)
	with GradientTape() as tape:
		tape.watch(x)
        # Define y using the multiply operation
		y = ____
    # Return the gradient of y with respect to x
	return tape.gradient(____, ____).numpy()

# Compute and print gradients at x = -1, 1, and 0
print(compute_gradient(-1.0))
print(compute_gradient(1.0))
print(compute_gradient(0.0))
Chỉnh sửa và Chạy Mã