Tập lệnh Python của bạn dự định huấn luyện một mạng nhỏ, nhưng nó dừng lại do lỗi hoặc in ra các con số kỳ lạ. Sigmora mở tập lệnh, xác định các dòng quan trọng, chạy lệnh huấn luyện của bạn qua Shell và hiển thị kết quả thực tế trong một thẻ, giúp bạn nắm rõ diễn biến thay vì đoán mò. Hãy bắt đầu với một tập lệnh duy nhất. Agent không tự chạy quá trình huấn luyện vì chính mã của bạn sẽ làm điều đó, và thời gian chạy phụ thuộc vào phần cứng của bạn. Vòng lặp xử lý rất ngắn: đọc, chạy, so sánh, chỉnh sửa. Bạn chọn thư mục, bạn chọn chế độ và bạn quyết định thay đổi nào cần áp dụng. Chỉ sử dụng mã, dữ liệu và máy tính bạn sở hữu hoặc được phép dùng, và hãy giữ mỗi thí nghiệm đủ nhỏ để dễ dàng lặp lại.
01
Mở thư mục làm việc
Chọn thư mục chứa tập lệnh huấn luyện, tệp cấu hình và nhật ký của bạn. Các công cụ tệp sẽ hoạt động trong thư mục này, và lệnh list_dir sẽ liệt kê nội dung bên trong. Hãy đặt dữ liệu được phép sử dụng cùng vị trí với mã nguồn để mọi đường dẫn trong tập lệnh đều ngắn gọn. Các công cụ tệp sẽ sử dụng thư mục này làm gốc.
02
Yêu cầu đọc mã
Yêu cầu Sigmora đọc tập lệnh huấn luyện và giải thích các lớp, hàm mất mát và vòng lặp. read_file và grep sẽ trích dẫn chính xác các dòng liên quan, giúp bạn đối chiếu lời giải thích với mã nguồn của mình. Chế độ Plan only sẽ không thực hiện bất kỳ thay đổi nào. Hãy hỏi lại nếu có phần nào vẫn chưa rõ ràng.
03
Chạy lệnh huấn luyện
Nhập lệnh huấn luyện và chọn chế độ thực thi. Shell sẽ chạy lệnh trên Windows, trong WSL hoặc qua SSH trên máy chủ của bạn, và thẻ kết quả sẽ hiển thị đầu ra thực tế cùng mã thoát. Python phải được cài đặt tại vị trí mà lệnh được thực thi. Quá trình huấn luyện có thể tốn nhiều thời gian tùy thuộc vào phần cứng của bạn.
04
Kiểm tra kết quả
Mở rộng thẻ để đọc thông báo lỗi hoặc các giá trị mất mát. Mã thoát bằng 0 chỉ có nghĩa là tập lệnh kết thúc mà không gặp lỗi, vì vậy bạn cần tự đánh giá các con số trên dữ liệu xác thực mà mô hình chưa từng thấy, và ghi chép lại những gì quan sát được. Sau đó, quyết định thay đổi nhỏ tiếp theo cần thực hiện.
Ví dụ: Một nơ-ron học cổng AND bằng Python thuần túy
Sigmora · Chạy ví dụ● Ask first
Chạy perceptron_and.py, sau đó tăng số epoch và chạy lại.
read_fileperceptron_and.pyread
Shellpython perceptron_and.pyexit 0
edit_fileperceptron_and.pysaved
Shellpython perceptron_and.pyexit 0
chờ bạn xác nhận trước khi thực hiện bước tiếp theoTừ chốiChấp nhận
perceptron_and.py
# AND gate: one neuron (perceptron) learns the table
rows = [((0,0),0), ((0,1),0), ((1,0),0), ((1,1),1)]
w = [0.0, 0.0]
b = 0.0
rate = 0.1
for epoch in range(20):
for x, target in rows:
total = w[0] * x[0] + w[1] * x[1] + b
out = 1 if total > 0 else 0
err = target - out
w[0] += rate * err * x[0]
w[1] += rate * err * x[1]
b += rate * err
print("weights:", w, "bias:", b)
Tệp này huấn luyện một nơ-ron đơn lẻ để học cổng AND với tốc độ học và một vòng lặp ngắn cập nhật trọng số, sau đó in ra các trọng số và độ lệch. Nó sử dụng Python thuần túy, không dùng thư viện bên ngoài và không dùng số ngẫu nhiên, nên mỗi lần chạy đều cho ra cùng một kết quả. Hãy chạy nó bằng Shell, thay đổi số epoch và chạy lại để xem sự thay đổi trong các trọng số được in ra.
Hướng dẫn chi tiết: Theo dõi thí nghiệm mạng nơ-ron tích chập (CNN) trong Python
Đọc mã huấn luyện
Trước khi thực hiện bất kỳ thay đổi nào, Sigmora sẽ đọc trước. read_file mở tập lệnh huấn luyện của bạn, list_dir hiển thị thư mục dữ liệu và grep tìm các dòng định nghĩa các lớp, hàm mất mát và vòng lặp. Bạn sẽ thấy nội dung tệp trong thẻ, giúp bạn so sánh kích thước lớp với kích thước dữ liệu đầu vào. Agent không thay đổi gì ở giai đoạn này. Các mô hình mạng nơ-ron cho các cổng logic, chẳng hạn như tệp AND ở trên, là bài tập kinh điển đầu tiên. Bước đọc tương tự cũng rất hữu ích cho một mạng nơ-ron tự viết bằng Python mà bạn đã viết cách đây một tháng và không còn nhớ rõ. Hãy yêu cầu giải thích bất kỳ khối mã nào bằng lời nói thông thường, hoặc chuyển sang chế độ Plan only nếu bạn muốn lời giải thích bằng văn bản mà không thực hiện hành động nào. Đọc từng lời giải thích bên cạnh mã nguồn và kiểm tra xem nó có khớp với những gì bạn đã viết hay không.
Chạy lệnh huấn luyện
Chọn Auto-run cho một lần chạy bạn tin tưởng, hoặc Ask first nếu bạn muốn phê duyệt các hành động có thể thay đổi mã nguồn. Shell sẽ bắt đầu lệnh huấn luyện của bạn, ví dụ python perceptron_and.py, trong môi trường bạn đã chọn, và thẻ kết quả sẽ hiển thị đầu ra thực tế cùng mã thoát. Mở rộng thẻ để đọc nhật ký đầy đủ của tập lệnh mạng nơ-ron tích chập Python của bạn từng dòng một. Quá trình huấn luyện có thể diễn ra trong bao lâu thì tùy, và Sigmora sẽ không tăng tốc nó. Khi hàm mất mát không hội tụ trong mạng nơ-ron, nhật ký là nơi bạn sẽ nhận ra điều đó đầu tiên. Hãy nhìn vào các con số, không chỉ vào mã thoát, vì mã thoát bằng 0 chỉ có nghĩa là tập lệnh đã kết thúc. Sau đó, quyết định xem mã nguồn có cần thay đổi hay không, và chỉ yêu cầu diff nếu thực sự cần thiết.
Sửa lỗi kích thước hoặc tốc độ hội tụ chậm
edit_file sẽ thay đổi tập lệnh và hiển thị diff. Trong chế độ Ask first, không có gì được ghi vào tệp cho đến khi bạn chấp nhận diff, trong khi Auto-run sẽ áp dụng thay đổi ngay lập tức. Lỗi kích thước thường có nghĩa là dữ liệu đầu vào và lớp đầu tiên không khớp, vì vậy giải pháp thường chỉ là điều chỉnh một con số. Hàm mất mát hầu như không giảm có thể chỉ ra tốc độ học chưa phù hợp, nhãn không khớp với dữ liệu, hoặc mô hình chưa đủ phức tạp để overfit một lô dữ liệu nhỏ. Hãy thử với lô dữ liệu nhỏ đó trước. Overfitting và underfitting là hai vấn đề khác nhau, vì vậy hãy xem xét cả mất mát huấn luyện và mất mát xác thực trước khi thay đổi bất kỳ cấu trúc lớn nào. Xây dựng mạng nơ-ron cho cờ vua là một dự án lớn hơn, nhưng quy trình bắt đầu cũng tương tự. Sau khi chỉnh sửa, hãy chạy lại lệnh bằng Shell và so sánh các con số mới với các con số cũ.
Ghi nhật ký kết quả vào tệp CSV
Để so sánh các lần chạy, bạn cần lưu các con số vào một tệp. write_file sẽ tạo một tệp CSV trong thư mục làm việc của bạn, hoặc append_file sẽ thêm một hàng mỗi epoch, và read_file sẽ tải lại tệp này để agent có thể đặt kết quả của 2 lần chạy cạnh nhau. Sigmora không tự phân tích dữ liệu cho bạn; nó chỉ lưu các con số và hiển thị chúng, còn bạn là người quyết định ý nghĩa của chúng. Hãy giữ dữ liệu xác thực tách biệt với dữ liệu huấn luyện và để nguyên tập kiểm tra cho đến cuối cùng. Chế độ Plan only có thể ghi lại thí nghiệm tiếp theo dưới dạng kế hoạch mà không thực thi bất kỳ lệnh nào. Khi bạn đã sẵn sàng, hãy chuyển chế độ và để agent thực hiện kế hoạch đó. Trước khi lưu giữ một kết quả, hãy mở tệp CSV và kiểm tra xem các hàng có khớp với những gì thẻ đã in ra và mỗi cột có được gắn nhãn rõ ràng hay không.