Hướng dẫn python set random seed globally - python đặt hạt giống ngẫu nhiên trên toàn cầu

106

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có một chương trình khá lớn, nơi tôi sử dụng các chức năng từ mô -đun random trong các tệp khác nhau. Tôi muốn có thể đặt hạt giống ngẫu nhiên một lần, tại một nơi, để làm cho chương trình luôn trả về cùng một kết quả. Điều đó thậm chí có thể đạt được trong python?

Hướng dẫn python set random seed globally - python đặt hạt giống ngẫu nhiên trên toàn cầu

DSM

328K62 Huy hiệu vàng573 Huy hiệu bạc481 Huy hiệu Đồng62 gold badges573 silver badges481 bronze badges

hỏi ngày 17 tháng 7 năm 2012 lúc 16:36Jul 17, 2012 at 16:36

Mischa obrechtmischa obrechtMischa Obrecht

2.5276 Huy hiệu vàng19 Huy hiệu bạc29 Huy hiệu đồng6 gold badges19 silver badges29 bronze badges

Mô -đun Python chính được chạy nên import random và gọi random.seed(n) - điều này được chia sẻ giữa tất cả các nhập khẩu khác của random miễn là ở một nơi khác không đặt lại hạt giống.

Đã trả lời ngày 17 tháng 7 năm 2012 lúc 16:38Jul 17, 2012 at 16:38

Hướng dẫn python set random seed globally - python đặt hạt giống ngẫu nhiên trên toàn cầu

Jon Clements ♦ Jon ClementsJon Clements

135K32 Huy hiệu vàng240 Huy hiệu bạc273 Huy hiệu Đồng32 gold badges240 silver badges273 bronze badges

7

Nhận xét của ZSS nên được nhấn mạnh như một câu trả lời thực tế:

Một điều khác để mọi người phải cẩn thận: Nếu bạn đang sử dụng numpy.random, thì bạn cần sử dụng numpy.random.seed() để đặt hạt giống. Sử dụng random.seed() sẽ không đặt hạt giống cho các số ngẫu nhiên được tạo từ numpy.random. Điều này làm tôi bối rối trong một thời gian. -zss

IVO

3.6205 Huy hiệu vàng21 Huy hiệu bạc45 Huy hiệu Đồng5 gold badges21 silver badges45 bronze badges

Đã trả lời ngày 2 tháng 1 năm 2018 lúc 5:42Jan 2, 2018 at 5:42

Hướng dẫn python set random seed globally - python đặt hạt giống ngẫu nhiên trên toàn cầu

2

Khi bắt đầu ứng dụng của bạn, hãy gọi random0, đảm bảo x luôn giống nhau. Điều này sẽ đảm bảo chuỗi các số ngẫu nhiên giả sẽ giống nhau trong mỗi lần chạy của ứng dụng.

Đã trả lời ngày 17 tháng 7 năm 2012 lúc 16:44Jul 17, 2012 at 16:44

Hướng dẫn python set random seed globally - python đặt hạt giống ngẫu nhiên trên toàn cầu

ChimerachimeraChimera

5.7906 Huy hiệu vàng47 Huy hiệu bạc80 Huy hiệu Đồng6 gold badges47 silver badges80 bronze badges

Jon Clements khá nhiều trả lời câu hỏi của tôi. Tuy nhiên, đó không phải là vấn đề thực sự: hóa ra, lý do cho sự ngẫu nhiên của mã của tôi là Numpy.Linalg SVD vì nó không phải lúc nào cũng tạo ra kết quả tương tự cho các ma trận điều hòa xấu !!

Vì vậy, hãy chắc chắn kiểm tra điều đó trong mã của bạn, nếu bạn có những vấn đề tương tự!

Đã trả lời ngày 18 tháng 7 năm 2012 lúc 11:11Jul 18, 2012 at 11:11

Mischa obrechtmischa obrechtMischa Obrecht

2.5276 Huy hiệu vàng19 Huy hiệu bạc29 Huy hiệu đồng6 gold badges19 silver badges29 bronze badges

1

Mô -đun Python chính được chạy nên import random và gọi random.seed(n) - điều này được chia sẻ giữa tất cả các nhập khẩu khác của random miễn là ở một nơi khác không đặt lại hạt giống.

Đã trả lời ngày 17 tháng 7 năm 2012 lúc 16:38

Jon Clements ♦ Jon Clements

135K32 Huy hiệu vàng240 Huy hiệu bạc273 Huy hiệu ĐồngApr 18, 2020 at 14:06

Nhận xét của ZSS nên được nhấn mạnh như một câu trả lời thực tế:JBSnorro

Một điều khác để mọi người phải cẩn thận: Nếu bạn đang sử dụng numpy.random, thì bạn cần sử dụng numpy.random.seed() để đặt hạt giống. Sử dụng random.seed() sẽ không đặt hạt giống cho các số ngẫu nhiên được tạo từ numpy.random. Điều này làm tôi bối rối trong một thời gian. -zss3 gold badges36 silver badges61 bronze badges

2

IVO

3.6205 Huy hiệu vàng21 Huy hiệu bạc45 Huy hiệu ĐồngNov 30, 2020 at 10:10

Đã trả lời ngày 2 tháng 1 năm 2018 lúc 5:42

Khi bắt đầu ứng dụng của bạn, hãy gọi random0, đảm bảo x luôn giống nhau. Điều này sẽ đảm bảo chuỗi các số ngẫu nhiên giả sẽ giống nhau trong mỗi lần chạy của ứng dụng.

Đã trả lời ngày 17 tháng 7 năm 2012 lúc 16:44

Chimerachimera

5.7906 Huy hiệu vàng47 Huy hiệu bạc80 Huy hiệu ĐồngAug 27, 2021 at 8:19

Hướng dẫn python set random seed globally - python đặt hạt giống ngẫu nhiên trên toàn cầu

Jon Clements khá nhiều trả lời câu hỏi của tôi. Tuy nhiên, đó không phải là vấn đề thực sự: hóa ra, lý do cho sự ngẫu nhiên của mã của tôi là Numpy.Linalg SVD vì nó không phải lúc nào cũng tạo ra kết quả tương tự cho các ma trận điều hòa xấu !!

rng = np.random.default_rng(int(abs(math.log(random.random()))))

tf.random.set_seed(int(abs(math.log(random.random()))))

Vì vậy, hãy chắc chắn kiểm tra điều đó trong mã của bạn, nếu bạn có những vấn đề tương tự!Dec 23, 2021 at 7:50

Hướng dẫn python set random seed globally - python đặt hạt giống ngẫu nhiên trên toàn cầu

Đã trả lời ngày 18 tháng 7 năm 2012 lúc 11:11acciptris

Dựa trên các câu trả lời trước đây: Hãy lưu ý rằng nhiều cấu trúc có thể phân kỳ các đường dẫn thực hiện, ngay cả khi tất cả các hạt giống được kiểm soát.1 silver badge1 bronze badge

Tôi đã nghĩ rằng "tôi đã đặt hạt giống của mình để chúng luôn giống nhau và tôi không có sự phụ thuộc bên ngoài/thay đổi, do đó, đường thực hiện mã của tôi phải luôn giống nhau", nhưng điều đó là sai.

Ví dụ mà tôi cắn là random1, trong đó thứ tự kết quả có thể khác nhau.

Đã trả lời ngày 18 tháng 4 năm 2020 lúc 14:06

JbsnorrojbsnorroJul 17, 2012 at 17:20

user1277476user1277476user1277476

5.5223 Huy hiệu vàng36 Huy hiệu bạc61 Huy hiệu Đồng11 silver badges9 bronze badges

3

Làm thế nào để bạn gán một giá trị hạt giống ngẫu nhiên trong Python?

Phương thức Python Random Seed () Phương thức Trình tạo số ngẫu nhiên cần một số để bắt đầu với (giá trị hạt giống), để có thể tạo ra một số ngẫu nhiên. Theo mặc định, trình tạo số ngẫu nhiên sử dụng thời gian hệ thống hiện tại. Sử dụng phương thức Seed () để tùy chỉnh số khởi động của trình tạo số ngẫu nhiên.Use the seed() method to customize the start number of the random number generator.

Hạt giống ngẫu nhiên Numpy có phải là toàn cầu không?

Hạt giống (số) đặt cái mà Numpy gọi là hạt giống ngẫu nhiên toàn cầu, ảnh hưởng đến tất cả việc sử dụng cho NP.ngẫu nhiên.* Mô -đun.Một số gói nhập khẩu hoặc các tập lệnh khác có thể đặt lại hạt giống ngẫu nhiên toàn cầu cho một hạt giống ngẫu nhiên khác với NP., which affects all uses to the np. random. * module. Some imported packages or other scripts could reset the global random seed to another random seed with np.

Làm thế nào để bạn đặt một hạt giống numpy ngẫu nhiên?

Numpy Random Shed CNIPPETS Mã A: Nhập gói Python Numpy và tạo tên bí danh là NP NP.Mã B: Tạo số giả ngẫu nhiên dựa trên hạt giống.Hạt giống có thể là bất kỳ số.Mã C: Trả về các mẫu ngẫu nhiên của mảng numpy từ mảng từ 0 đến 5 với kích thước 10.Import the numpy python package and create an alias name as “np.” Code B: Generates pseudo-random number based on seed. Seed can be any number. Code C: Returns random samples of numpy array from array between 0 and 5 with the size of 10.

Làm thế nào để bạn chọn một hạt giống ngẫu nhiên?

Nhiều nhà nghiên cứu lo lắng về cách chọn một hạt giống ngẫu nhiên.Một số người sử dụng một chuỗi dễ nhớ như số điện thoại của họ hoặc vài chữ số đầu tiên của PI.Những người khác sử dụng các số nguyên tố dài như 937162211.Some people use an easy-to-remember sequence such as their phone number or the first few digits of pi. Others use long prime numbers such as 937162211.