Reset reset RNG seed; generate new cue bit arrays, and arbitrarily select one of the four cues as the "target" cue.
(self)
| 115 | return self.obs, self.reward, done, info |
| 116 | |
| 117 | def reset(self): |
| 118 | """ |
| 119 | Reset reset RNG seed; generate new cue bit arrays, and arbitrarily |
| 120 | select one of the four cues as the "target" cue. |
| 121 | """ |
| 122 | # Re-seed random functions |
| 123 | random.seed(self.seed) |
| 124 | np.random.seed(self.seed) |
| 125 | |
| 126 | # Reset timesteps |
| 127 | self.tstep = 0 |
| 128 | self.trialTime = 1 |
| 129 | |
| 130 | # Initialize cue bit strings |
| 131 | CUE_MAX = pow(2, self.cuebits) |
| 132 | cues_ints = np.zeros(NUM_CUES, dtype="int32") |
| 133 | for i in range(NUM_CUES): |
| 134 | c = 0 |
| 135 | while np.any(cues_ints == c): |
| 136 | c = random.randint(2, CUE_MAX) # 1 reserved for response cue |
| 137 | cues_ints[i] = c |
| 138 | |
| 139 | self.cues = np.zeros((NUM_CUES, self.cuebits), dtype="int32") |
| 140 | for i in range(NUM_CUES): |
| 141 | binarray = np.array(list(np.binary_repr(cues_ints[i]))).astype("int32") |
| 142 | self.cues[i][: len(binarray)] = binarray |
| 143 | |
| 144 | # Randomly select the target cue for this episode. |
| 145 | self.target = random.randint(0, NUM_CUES) |
| 146 | |
| 147 | # provide empty default observation |
| 148 | self.obs = self.zeroArray |
| 149 | |
| 150 | # Reset reward |
| 151 | self.reward = torch.Tensor(1) |
| 152 | self.reward[0] = 0 # default reward to 0 |
| 153 | |
| 154 | # Instantiate response member, defaulting to 0. |
| 155 | self.response = 0 |
| 156 | |
| 157 | return self.obs |
| 158 | |
| 159 | def render(self): |
| 160 | """ |