reid from https://github.com/michuanhaohao/reid-strong-baseline
zhangmeng
2020-01-10 c3765bd24fe73747688a0ec2a550f219c9acb384
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#pragma once
 
#include <ATen/core/MT19937RNGEngine.h>
 
/**
 * THGeneratorState is a POD class needed for memcpys
 * in torch.get_rng_state() and torch.set_rng_state().
 * It is a legacy class and even though it is replaced with
 * at::CPUGenerator, we need this class and some of its fields
 * to support backward compatibility on loading checkpoints.
 */
struct THGeneratorState {
  /* The initial seed. */
  uint64_t the_initial_seed;
  int left;  /* = 1; */
  int seeded; /* = 0; */
  uint64_t next;
  uint64_t state[at::MERSENNE_STATE_N]; /* the array for the state vector  */
 
  /********************************/
 
  /* For normal distribution */
  double normal_x;
  double normal_y;
  double normal_rho;
  int normal_is_valid; /* = 0; */
};
 
/**
 * THGeneratorStateNew is a POD class containing
 * new data introduced in at::CPUGenerator and the legacy state. It is used
 * as a helper for torch.get_rng_state() and torch.set_rng_state()
 * functions.
 */ 
struct THGeneratorStateNew {
  THGeneratorState legacy_pod;
  float next_float_normal_sample;
  bool is_next_float_normal_sample_valid;
};