WEBVTT

00:00.330 --> 00:03.420
Xin chào và chào mừng đến với hướng dẫn cuối cùng của phần này.

00:03.420 --> 00:09.210
Chúng ta sẽ tạo hàm cuối cùng của lớp tài liệu này, tất nhiên đây sẽ là

00:09.210 --> 00:12.360
hàm tải tự nhiên xuất hiện sau hàm lưu.

00:12.360 --> 00:17.250
Bạn lưu mô hình của mình và sau đó bạn muốn có thể tải mô hình đó bất cứ khi nào bạn quay lại ứng dụng.

00:17.250 --> 00:18.660
Vì vậy, chúng ta hãy làm điều này.

00:18.660 --> 00:22.440
Chúng ta sẽ tạo def, sau đó tải.

00:22.440 --> 00:29.190
Chúng ta lại gọi đây là hàm tải cuối cùng, hàm tải này sẽ tự nhận là đối số và bạn có thể đoán được hàm

00:29.190 --> 00:31.020
này sẽ dùng để làm gì.

00:31.020 --> 00:34.980
Nó sẽ chính xác để tải những gì đã được lưu trong chức năng lưu.

00:34.980 --> 00:39.060
Vì vậy, chúng tôi sẽ tự mô hình hóa và tất nhiên tự tối ưu hóa đó.

00:39.270 --> 00:42.330
Vì vậy, bản thân ở đây sẽ dành cho mô hình và trình tối ưu hóa.

00:42.780 --> 00:46.290
Vì vậy, sau đó dấu hai chấm và bây giờ chúng ta hãy tải mô hình.

00:46.650 --> 00:53.100
Vì vậy, vì mô hình nằm trong thương hiệu cuối cùng của tệp, chúng tôi muốn đảm bảo tệp này tồn tại và do đó đó là những gì

00:53.100 --> 00:54.420
chúng tôi sẽ bắt đầu.

00:54.420 --> 00:58.230
Chúng tôi sẽ đưa ra điều kiện F để đảm bảo rằng tệp này tồn tại.

00:58.230 --> 01:04.980
Và nếu nó tồn tại, chúng tôi sẽ tải những gì chúng tôi có trong từ điển, nằm trong tệp in cuối cùng này.

01:05.280 --> 01:13.410
Vì vậy, chúng ta bắt đầu bằng chữ F, sau đó chúng ta sẽ lấy hệ điều hành của mình và đường dẫn đến tệp

01:13.410 --> 01:14.880
braindead cuối cùng này.

01:14.880 --> 01:19.650
Vì vậy OS dot path chính xác là đường dẫn đến thư mục thư mục làm việc.

01:19.650 --> 01:26.100
Theo như tôi lo ngại rằng màn hình nền đường dẫn này chứ không phải trí tuệ nhân tạo của tôi, đó là thư mục

01:26.100 --> 01:31.770
đó sau đó tạo mô hình một chiếc ô tô tự lái và sau đó là mô-đun một thư mục ô

01:31.770 --> 01:39.330
tô tự lái, đó là thư mục này ở đây với điểm cuối cùng của tệp và sau đó chúng ta sẽ thêm dấu chấm là tệp là tệp này.

01:39.660 --> 01:40.890
Vì vậy, đó là chức năng.

01:40.890 --> 01:42.570
Vì vậy, tôi sẽ thêm một số dấu ngoặc đơn.

01:42.570 --> 01:47.850
Và bên trong dấu ngoặc, tôi sẽ nhập tên của tệp, tên của tệp chứa mô hình

01:47.850 --> 01:49.760
là dấu chấm não cuối cùng.

01:50.610 --> 01:53.490
Vì vậy, chúng tôi phải nhập nó trong dấu ngoặc kép.

01:53.610 --> 02:04.470
Và vì vậy tôi đang nhập dấu chấm não cuối cùng và vì vậy dấu chấm não trái của tệp này sẽ trả về true nếu dấu chấm não trái

02:04.470 --> 02:08.400
của tệp tồn tại và false nếu không tồn tại.

02:08.400 --> 02:15.840
Và do đó nếu điều kiện này có nghĩa là nếu chúng ta có não trái tập tin trong thư mục thư mục làm việc của chúng ta, thì chúng

02:16.140 --> 02:19.590
ta hãy đi đến những gì sẽ xảy ra trong trường hợp đó.

02:19.590 --> 02:22.380
Trong trường hợp đó, nếu tệp này tồn tại.

02:22.380 --> 02:27.450
Đầu tiên, chúng ta sẽ in một cái gì đó để nói rằng chúng ta đang tải mô hình.

02:27.460 --> 02:35.520
Vì vậy, ví dụ, chúng ta có thể nói một mũi tên nhỏ và sau đó tải các điểm kiểm tra với ba dấu chấm nhỏ.

02:35.790 --> 02:36.180
Được rồi.

02:36.180 --> 02:40.890
Vì vậy, đó chỉ là để nói rằng, chúng tôi đang tải mô hình và sau đó, tất nhiên, chúng tôi sẽ tải mô hình.

02:40.890 --> 02:46.650
Vì vậy, mô hình và trình tối ưu hóa và chúng tôi sẽ đặt những gì chúng tôi tải vào một

02:46.650 --> 02:49.560
biến mà tôi sẽ gọi là điểm kiểm tra bằng.

02:49.560 --> 02:54.900
Và đó là nơi chúng ta sẽ sử dụng hàm tải để tải những gì đã được lưu trong hàm lưu.

02:54.900 --> 02:58.950
Vì vậy, tất nhiên đây là một chức năng từ thư viện ngọn đuốc.

02:58.950 --> 03:06.960
Vậy Torch Dot và tên của hàm load này chỉ đơn giản là load ngoặc đơn và bên trong ngoặc đơn theo bạn chúng

03:06.960 --> 03:08.910
ta cần nhập những gì?

03:08.910 --> 03:15.840
Rất đơn giản, chúng tôi cần nhập tệp có chứa mô hình đã lưu và trình tối ưu hóa đã lưu của chúng tôi.

03:15.990 --> 03:22.080
Vì vậy, chúng ta chỉ cần nhập tên của tệp, đó là Last Brain Dot.

03:24.170 --> 03:30.100
Hãy mang theo trang đó và chúng tôi tải tệp này chỉ trong điều kiện tệp này tồn tại.

03:30.110 --> 03:33.020
Vì vậy, đó là lý do tại sao chúng tôi phải viết mã điều kiện if ở đây.

03:33.770 --> 03:33.980
Được chứ.

03:33.980 --> 03:40.460
Vì vậy, bây giờ chúng tôi đã tải mô hình và trình tối ưu hóa, tốt, những gì chúng tôi sẽ làm là cập nhật riêng mô hình của

03:40.460 --> 03:46.220
chúng tôi và trình tối ưu hóa, bởi vì thực sự chúng tôi đã tải các tham số, chúng tôi tải các trọng số và các

03:46.220 --> 03:47.930
tham số của trình tối ưu hóa.

03:47.930 --> 03:55.880
Vì vậy, bây giờ những gì chúng ta cần làm là cập nhật mô hình hiện có của mình, chính là mô hình này, mô hình đó

03:55.880 --> 04:03.410
và chính trình tối ưu hóa hiện có của chúng tôi, trình tối ưu hóa đó với các tham số có trọng số trong tệp

04:03.410 --> 04:04.700
braindead cuối cùng này.

04:05.000 --> 04:07.910
Vì vậy, chúng tôi chỉ cần thực hiện hai bản cập nhật này riêng biệt.

04:07.910 --> 04:11.900
Và để làm điều này, chúng ta sẽ sử dụng một phương pháp từ các mô-đun ngọn đuốc.

04:11.900 --> 04:17.930
Vì vậy, sẽ có sự kế thừa sẽ cho phép chúng ta sử dụng phương thức này được gọi là load

04:17.930 --> 04:18.560
state dict.

04:18.560 --> 04:25.250
Và phương pháp trạng thái chậm sẽ cho phép chúng tôi cập nhật tất cả các tham số của mô hình và trình tối ưu hóa của chúng tôi.

04:25.250 --> 04:28.580
Vì vậy, hãy làm điều này và bắt đầu bằng cách cập nhật mô hình của chúng tôi.

04:28.580 --> 04:35.870
Vì vậy, chúng tôi lấy mô hình của chúng tôi, đó là mô hình tự dạy vì mô hình đó kế thừa từ các

04:35.870 --> 04:40.490
phương thức của mô-đun ngọn đuốc để sử dụng phương thức dict trạng thái tải.

04:40.490 --> 04:43.130
Vì vậy, đó là phương pháp chúng tôi đang sử dụng từ sự kế thừa.

04:43.130 --> 04:48.380
Và nhờ vào phương pháp này, chúng tôi sẽ cập nhật tất cả các tham số của mô hình là tất cả các trọng số.

04:48.530 --> 04:54.830
Và vì vậy, những gì chúng ta cần nhập trong phương thức tải tĩnh này là biến điểm kiểm tra của chúng ta, là kết

04:54.830 --> 04:56.030
quả của hàm tải.

04:56.030 --> 05:04.190
Vì vậy, kiểm tra điểm sau đó đến dấu ngoặc và bây giờ chúng ta cần nhập tên của khóa tương ứng với mô hình của chúng tôi, tương

05:04.190 --> 05:09.410
ứng với bản thân, trạng thái mô hình đó là dict và đó là lệnh trạng thái.

05:10.000 --> 05:17.980
Vì vậy, trong các điểm kiểm tra và dấu ngoặc, chúng tôi nhập các trạng thái dấu ngoặc kép trên phiếu điểm và dòng mã này sẽ

05:17.980 --> 05:19.950
cập nhật mô hình của bạn.

05:19.960 --> 05:22.960
Tức là nó sẽ cập nhật các trọng số, các thông số về mô hình của bạn.

05:23.290 --> 05:28.240
Và bây giờ chúng ta cần làm điều tương tự đối với trình tối ưu hóa và điều đó sẽ gần giống như vậy.

05:28.240 --> 05:30.370
Vì vậy, tôi sẽ sao chép dòng này.

05:32.070 --> 05:33.110
Dựa dưới đây.

05:33.120 --> 05:39.330
Và vì vậy, lần này chúng tôi sẽ không cập nhật mô hình mà là chính trình tối ưu hóa.

05:39.330 --> 05:40.400
Trình tối ưu hóa đó.

05:40.410 --> 05:47.670
Sau đó, một lần nữa, chúng tôi sử dụng phương pháp phân rã trạng thái tải kế thừa từ phương pháp mô-đun ngọn đuốc và chúng

05:47.670 --> 05:55.560
tôi áp dụng chức năng này cho điểm kiểm tra không phải là trạng thái dict, mà là khóa tương ứng với trình tối ưu hóa và đó là

05:55.560 --> 05:56.930
trình tối ưu hóa.

05:56.940 --> 06:01.680
Vì vậy, ở đây chúng tôi chỉ thay thế dict bằng lên đến miser.

06:02.100 --> 06:02.910
Chúng ta bắt đầu.

06:02.910 --> 06:07.560
Ở đây chúng tôi cập nhật trọng số của mô hình và ở đây chúng tôi cập nhật các thông số của trình tối ưu hóa.

06:08.220 --> 06:08.910
Hoàn hảo.

06:08.910 --> 06:15.360
Và sau đó chỉ cần hoàn thành, chúng tôi có thể in một chút xong như vậy.

06:15.630 --> 06:21.330
Và cuối cùng, chúng ta chỉ cần xác định điều gì sẽ xảy ra nếu điều kiện này không được tôn trọng.

06:21.330 --> 06:24.420
Đó là, nếu không có một tệp ít thương hiệu hơn.

06:24.420 --> 06:27.990
Và vì vậy chúng ta chỉ cần thêm một cột LS.

06:29.000 --> 06:33.890
Và đơn giản là chúng tôi sẽ nói rằng không có bộ não nào kém tuổi như vậy.

06:34.040 --> 06:42.950
Vì vậy, chúng tôi sẽ in một cái gì đó như không tìm thấy điểm kiểm tra và ba dấu chấm nhỏ nếu bạn muốn.

06:44.200 --> 06:44.980
Được rồi.

06:44.980 --> 06:51.670
Và điều đó cung cấp cho chúng ta một hàm tải chức năng và hầu hết là một chức năng trong lớp.

06:51.670 --> 06:56.920
Và bây giờ xin chúc mừng vì trí tuệ nhân tạo của chúng ta đã sẵn sàng.

06:56.950 --> 07:01.360
Bạn có thể nghe thấy giọng nói của tôi rằng tôi đang rất phấn khích vì bây giờ là lúc

07:01.360 --> 07:02.050
cho bản demo.

07:02.080 --> 07:08.620
Chúng tôi chỉ tạo ra một bộ não và chúng tôi sẽ đặt bộ não này vào trong xe hơi và chúng tôi sẽ xem nó đủ thông minh để

07:08.620 --> 07:13.330
thực hiện những chuyến đi vòng giữa sân bay và trung tâm thành phố, bất kể con đường là gì.

07:13.330 --> 07:15.250
Vì vậy, tôi rất nóng lòng muốn cho bạn xem bản demo.

07:15.280 --> 07:17.290
Điều này sẽ có trong phần tiếp theo.

07:17.290 --> 07:18.580
Và cho đến khi đó, hãy tận hưởng.

07:18.580 --> 07:19.150
TÔI.
