movingMNIST.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:dataset_loaders 作者: fvisin 项目源码 文件源码
def _get_sequence(self, verbose=False):
        trajectory_x, trajectory_y = self._get_random_trajectory()

        # Minibatch data
        if self.random_background:
            out_sequence = self._rng.rand(self.seq_length + 1,
                                          self.frame_size[0],
                                          self.frame_size[1], 1)
        else:
            out_sequence = np.zeros((self.seq_length + 1,
                                     self.frame_size[0],
                                     self.frame_size[1], 1),
                                    dtype=np.float32)

        for digit_id in range(self.num_digits):

            # Get random digit from dataset
            curr_data_idx = self._rng.randint(0, self._MNIST_data.shape[0] - 1)
            digit_image = self._MNIST_data[curr_data_idx]

            zoom_factor = int(self.digits_sizes[digit_id] / 28)
            if zoom_factor != 1:
                digit_image = zoom(digit_image, zoom_factor)
            digit_size = digit_image.shape[0]

            # Generate video
            digit_image = np.expand_dims(digit_image, -1)
            # Iterate over seq_length + 1 to account for the extra frame
            # that is returned as a target
            for i, (top, left) in enumerate(zip(trajectory_y[:, digit_id],
                                                trajectory_x[:, digit_id])):
                bottom = top + digit_size
                right = left + digit_size
                out_sequence[i, top:bottom, left:right, :] = np.maximum(
                    out_sequence[i, top:bottom, left:right, :], digit_image)
        return out_sequence
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号