Tốt nghiệp Python
Kiểm tra tính chính xác của hàm gradient bằng cách so sánh nó với phép xấp xỉ sai phân hữu hạn (chuyển tiếp) của gradient Show func(x0, *args) Hàm có đạo hàm cần kiểm tra grad có thể gọi đượcgrad(x0, *args) Jacobian của chức năng x0 ndarrayCác điểm để kiểm tra grad so với xấp xỉ chênh lệch chuyển tiếp của grad bằng cách sử dụng func args * đối số, tùy chọnĐối số bổ sung được chuyển đến func và grad Kích thước bước được sử dụng cho xấp xỉ sai phân hữu hạn. Nó mặc định là Nếu được đặt thành Nếu hạt giống là Không có (hoặc np. ngẫu nhiên), singleton được sử dụng. Nếu hạt giống là một số nguyên, một thể hiện Căn bậc hai của tổng các bình phương (i. e. , chuẩn 2) của hiệu giữa Ghi chú. Autograd vẫn đang được duy trì nhưng không còn được phát triển tích cực. Các nhà phát triển chính (Dougal Maclaurin, David Duvenaud, Matt Johnson và Jamie Townsend) hiện đang làm việc trên JAX, với Dougal và Matt làm việc toàn thời gian cho nó. JAX kết hợp phiên bản Autograd mới với các tính năng bổ sung như biên dịch jit Autograd có thể tự động phân biệt mã Python và mã Numpy gốc. Nó có thể xử lý một tập hợp con lớn các tính năng của Python, bao gồm vòng lặp, if, đệ quy và bao đóng, và thậm chí nó có thể lấy đạo hàm của đạo hàm của đạo hàm. Nó hỗ trợ phân biệt chế độ đảo ngược (a. k. a. lan truyền ngược), có nghĩa là nó có thể lấy độ dốc của các hàm có giá trị vô hướng một cách hiệu quả đối với các đối số có giá trị mảng, cũng như phân biệt chế độ chuyển tiếp và cả hai có thể được kết hợp tùy ý. Ứng dụng dự định chính của Autograd là tối ưu hóa dựa trên độ dốc. Để biết thêm thông tin, hãy xem hướng dẫn và thư mục ví dụ Sử dụng một ví dụ >>> import autograd.numpy as np # Thinly-wrapped numpy >>> from autograd import grad # The only autograd function you may ever need >>> >>> def tanh(x): # Define a function .. y = np.exp(-2.0 * x) .. return (1.0 - y) / (1.0 + y) ... >>> grad_tanh = grad(tanh) # Obtain its gradient function >>> grad_tanh(1.0) # Evaluate the gradient at x = 1.0 0.41997434161402603 >>> (tanh(1.0001) - tanh(0.9999)) / 0.0002 # Compare to finite differences 0.41997434264973155 Chúng ta có thể tiếp tục phân biệt bao nhiêu lần tùy thích và sử dụng vectơ hóa các hàm có giá trị vô hướng của numpy trên nhiều giá trị đầu vào khác nhau >>> from autograd import elementwise_grad as egrad # for functions that vectorize over inputs >>> import matplotlib.pyplot as plt >>> x = np.linspace(-7, 7, 200) >>> plt.plot(x, tanh(x), .. x, egrad(tanh)(x), # first derivative .. x, egrad(egrad(tanh))(x), # second derivative .. x, egrad(egrad(egrad(tanh)))(x), # third derivative .. x, egrad(egrad(egrad(egrad(tanh))))(x), # fourth derivative .. x, egrad(egrad(egrad(egrad(egrad(tanh)))))(x), # fifth derivative .. x, egrad(egrad(egrad(egrad(egrad(egrad(tanh))))))(x)) # sixth derivative >>> plt.show() Xem tệp ví dụ tanh để biết mã Tài liệuBạn có thể tìm thấy một hướng dẫn ở đây Ví dụ từ đầu đến cuối
Cài đặt thế nàoChỉ cần chạy tác giảAutograd được viết bởi Dougal Maclaurin, David Duvenaud, Matt Johnson, Jamie Townsend và nhiều cộng tác viên khác. Gói hiện vẫn đang được duy trì, nhưng không còn được phát triển tích cực nữa. Vui lòng gửi bất kỳ lỗi hoặc yêu cầu tính năng nào. Chúng tôi cũng muốn nghe về trải nghiệm của bạn với autograd nói chung. Gửi email cho chúng tôi Chúng tôi muốn cảm ơn Jasper Snoek và phần còn lại của nhóm HIPS (dẫn đầu bởi Giáo sư. Ryan P. Adams) vì những đóng góp và lời khuyên hữu ích; . (Lyric Labs) và Samsung Advanced Institute of Technology vì sự hỗ trợ hào phóng của họ Độ dốc của một chức năng là gì?Gradient của một hàm, f(x, y), theo hai chiều được định nghĩa là. gradf(x, y) = Vf(x, y) = ∂f ∂x i + ∂f ∂y j . Độ dốc của một hàm là một trường vectơ. Nó có được bằng cách áp dụng toán tử vectơ V cho hàm vô hướng f(x, y). Trường vectơ như vậy được gọi là trường vectơ gradient (hoặc bảo toàn).
Độ dốc trong Pytorch là gì?Độ dốc được dùng để tìm đạo hàm của hàm . Về mặt toán học, đạo hàm có nghĩa là đạo hàm từng phần của một hàm và tìm giá trị. Dưới đây là sơ đồ cách tính đạo hàm của hàm số.
Autograd hoạt động như thế nào với Python?Autograd là một hệ thống phân biệt tự động đảo ngược. Về mặt khái niệm, autograd ghi lại một biểu đồ ghi lại tất cả các hoạt động đã tạo dữ liệu khi bạn thực hiện các hoạt động, cung cấp cho bạn một biểu đồ tuần hoàn có hướng có các lá là tenxơ đầu vào và gốc là tenxơ đầu ra |