未验证 提交 1b90f968 编写于 作者: Y YuanRisheng 提交者: GitHub

Support fixed seed in Python for test (#36065)

* Add New Op: gumbel_softmax

* Add New Op: gumbel_softmax

* Add New Op: gumbel_softmax (amend)

* add __main__ function in unit test

* fix bugs when test in windows ci

* update en docs

* delete reletive error in unit test

* delete relative error in unit test

* set hard=True in unit test

* Support fix seed in Python for test
上级 d70e45d9
...@@ -130,7 +130,6 @@ struct GumbleNoiseGenerator<platform::CUDADeviceContext, T> { ...@@ -130,7 +130,6 @@ struct GumbleNoiseGenerator<platform::CUDADeviceContext, T> {
T* random_data = T* random_data =
random_tensor.mutable_data<T>({size}, platform::CUDAPlace()); random_tensor.mutable_data<T>({size}, platform::CUDAPlace());
thrust::counting_iterator<unsigned int> index_sequence_begin(0); thrust::counting_iterator<unsigned int> index_sequence_begin(0);
const unsigned int seed = std::random_device()();
// generate gumbel noise // generate gumbel noise
int device_id = int device_id =
...@@ -144,6 +143,7 @@ struct GumbleNoiseGenerator<platform::CUDADeviceContext, T> { ...@@ -144,6 +143,7 @@ struct GumbleNoiseGenerator<platform::CUDADeviceContext, T> {
thrust::device_ptr<T>(random_data), thrust::device_ptr<T>(random_data),
UniformCUDAGenerator<T>(0.00001, 1, seed_offset.first, gen_offset)); UniformCUDAGenerator<T>(0.00001, 1, seed_offset.first, gen_offset));
} else { } else {
const unsigned int seed = std::random_device()();
thrust::transform(index_sequence_begin, index_sequence_begin + size, thrust::transform(index_sequence_begin, index_sequence_begin + size,
thrust::device_ptr<T>(random_data), thrust::device_ptr<T>(random_data),
UniformCUDAGenerator<T>(0.00001, 1, seed)); UniformCUDAGenerator<T>(0.00001, 1, seed));
......
...@@ -86,8 +86,7 @@ struct GumbleNoiseGenerator<platform::CPUDeviceContext, T> { ...@@ -86,8 +86,7 @@ struct GumbleNoiseGenerator<platform::CPUDeviceContext, T> {
// generate uniform random number // generate uniform random number
const int size = size_to_axis * size_from_axis; const int size = size_to_axis * size_from_axis;
std::uniform_real_distribution<T> dist(0.00001, 1); std::uniform_real_distribution<T> dist(0.00001, 1);
const int seed = std::random_device()(); auto engine = paddle::framework::GetCPURandomEngine(0);
auto engine = paddle::framework::GetCPURandomEngine(seed);
Tensor random_tensor; Tensor random_tensor;
auto* random_data = auto* random_data =
random_tensor.mutable_data<T>({size}, platform::CPUPlace()); random_tensor.mutable_data<T>({size}, platform::CPUPlace());
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册