当前位置: 首页>>代码示例>>Python>>正文


Python cuda.to_cpu方法代码示例

本文整理汇总了Python中chainer.cuda.to_cpu方法的典型用法代码示例。如果您正苦于以下问题:Python cuda.to_cpu方法的具体用法?Python cuda.to_cpu怎么用?Python cuda.to_cpu使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在chainer.cuda的用法示例。


在下文中一共展示了cuda.to_cpu方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: batch_act

# 需要导入模块: from chainer import cuda [as 别名]
# 或者: from chainer.cuda import to_cpu [as 别名]
def batch_act(self, batch_obs):
        """Select a batch of actions for evaluation.

        Args:
            batch_obs (Sequence of ~object): Observations.

        Returns:
            Sequence of ~object: Actions.
        """

        with chainer.using_config('train', False), chainer.no_backprop_mode():
            batch_xs = self.batch_states(batch_obs, self.xp, self.phi)
            batch_action = self.policy(batch_xs).sample()
            # Q is not needed here, but log it just for information
            q = self.q_function(batch_xs, batch_action)

        # Update stats
        self.average_q *= self.average_q_decay
        self.average_q += (1 - self.average_q_decay) * float(
            q.array.mean(axis=0))
        self.logger.debug('t:%s a:%s q:%s',
                          self.t, batch_action.array[0], q.array)
        return [cuda.to_cpu(action.array) for action in batch_action] 
开发者ID:chainer,项目名称:chainerrl,代码行数:25,代码来源:ddpg.py

示例2: batch_act_and_train

# 需要导入模块: from chainer import cuda [as 别名]
# 或者: from chainer.cuda import to_cpu [as 别名]
def batch_act_and_train(self, batch_obs):
        with chainer.using_config('train', False), chainer.no_backprop_mode():
            batch_av = self._evaluate_model_and_update_recurrent_states(
                batch_obs, test=False)
            batch_maxq = batch_av.max.array
            batch_argmax = cuda.to_cpu(batch_av.greedy_actions.array)
        batch_action = [
            self.explorer.select_action(
                self.t, lambda: batch_argmax[i],
                action_value=batch_av[i:i + 1],
            )
            for i in range(len(batch_obs))]
        self.batch_last_obs = list(batch_obs)
        self.batch_last_action = list(batch_action)

        # Update stats
        self.average_q *= self.average_q_decay
        self.average_q += (1 - self.average_q_decay) * float(batch_maxq.mean())

        return batch_action 
开发者ID:chainer,项目名称:chainerrl,代码行数:22,代码来源:dqn.py

示例3: _compute_loss

# 需要导入模块: from chainer import cuda [as 别名]
# 或者: from chainer.cuda import to_cpu [as 别名]
def _compute_loss(self, exp_batch, errors_out=None):
        """Compute a loss.

        Returns:
            Returns:
                chainer.Variable: Scalar loss.
        """
        y, taus = self._compute_y_and_taus(exp_batch)
        with chainer.no_backprop_mode():
            t = self._compute_target_values(exp_batch)

        eltwise_loss = compute_eltwise_huber_quantile_loss(y, t, taus)
        if errors_out is not None:
            del errors_out[:]
            delta = F.mean(eltwise_loss, axis=(1, 2))
            errors_out.extend(cuda.to_cpu(delta.array))

        if 'weights' in exp_batch:
            return compute_weighted_value_loss(
                eltwise_loss, exp_batch['weights'],
                batch_accumulator=self.batch_accumulator)
        else:
            return compute_value_loss(
                eltwise_loss, batch_accumulator=self.batch_accumulator) 
开发者ID:chainer,项目名称:chainerrl,代码行数:26,代码来源:iqn.py

示例4: _compute_loss

# 需要导入模块: from chainer import cuda [as 别名]
# 或者: from chainer.cuda import to_cpu [as 别名]
def _compute_loss(self, exp_batch, errors_out=None):
        """Compute a loss of categorical DQN."""
        y, t = self._compute_y_and_t(exp_batch)
        # Minimize the cross entropy
        # y is clipped to avoid log(0)
        eltwise_loss = -t * F.log(F.clip(y, 1e-10, 1.))

        if errors_out is not None:
            del errors_out[:]
            # The loss per example is the sum of the atom-wise loss
            # Prioritization by KL-divergence
            delta = F.sum(eltwise_loss, axis=1)
            delta = cuda.to_cpu(delta.array)
            for e in delta:
                errors_out.append(e)

        if 'weights' in exp_batch:
            return compute_weighted_value_loss(
                eltwise_loss, y.shape[0], exp_batch['weights'],
                batch_accumulator=self.batch_accumulator)
        else:
            return compute_value_loss(
                eltwise_loss, batch_accumulator=self.batch_accumulator) 
开发者ID:chainer,项目名称:chainerrl,代码行数:25,代码来源:categorical_dqn.py

示例5: iterate_eos_scores

# 需要导入模块: from chainer import cuda [as 别名]
# 或者: from chainer.cuda import to_cpu [as 别名]
def iterate_eos_scores(new_scores, eos_idx, existing_cases = None, beam_width=None)->Tuple[Sequence, Sequence, Sequence]:
    """
    Return the indices and scores corresponding to the eos word.
    Meaning of returned values is the same as for iterate_best_score
    """
    nb_cases, v_size = new_scores.shape
    num_cases = np.arange(nb_cases, dtype=np.int32)
    scores = -cuda.to_cpu(new_scores[:, eos_idx])
    if existing_cases is not None:
        need_to_return = np.logical_not(np.isin(num_cases, existing_cases))
        num_cases = num_cases[need_to_return]
        scores = scores[need_to_return]

    idx_in_cases = np.full(num_cases.shape[0], eos_idx, dtype=np.int32)

    if beam_width is not None:
        if beam_width < len(scores):
            idx_to_keep = np.argpartition(scores, beam_width)[:beam_width]
            scores = scores[idx_to_keep]
            num_cases = num_cases[idx_to_keep]
            idx_in_cases = idx_in_cases[idx_to_keep]

    return num_cases, idx_in_cases, scores 
开发者ID:fabiencro,项目名称:knmt,代码行数:25,代码来源:beam_search.py

示例6: _pl_sample

# 需要导入模块: from chainer import cuda [as 别名]
# 或者: from chainer.cuda import to_cpu [as 别名]
def _pl_sample(t, α):
    """
    Sample from the plackett luce distribution directly

    :param t: The target labels
    :return: A random permutation from the plackett-luce distribution
             parameterized by the target labels
    """
    xp = cuda.get_array_module(t)
    t = t[:, 0]

    probs = xp.exp(t * α)
    probs /= xp.sum(probs)

    # Use CPU-based numpy implementation, because cupy.random.choice with
    # replace=False does not work
    probs = cuda.to_cpu(probs)
    result = np.random.choice(probs.shape[0], probs.shape[0], replace=False,
                              p=probs)
    return xp.array(result, copy=False) 
开发者ID:rjagerman,项目名称:shoelace,代码行数:22,代码来源:listwise.py

示例7: generate

# 需要导入模块: from chainer import cuda [as 别名]
# 或者: from chainer.cuda import to_cpu [as 别名]
def generate(net, image_model, image_path):
    feature = image_model.feature(image_path)
    net.initialize(feature)
    candidates = [(net, [bos], 0)]

    for i in range(max_length):
        next_candidates = []
        for prev_net, tokens, likelihood in candidates:
            if tokens[-1] == eos:
                next_candidates.append((None, tokens, likelihood))
                continue
            net = prev_net.copy()
            x = xp.asarray([tokens[-1]]).astype(np.int32)
            y = F.softmax(net(x))
            token_likelihood = np.log(cuda.to_cpu(y.data[0]))
            order = token_likelihood.argsort()[-beam_width:][::-1]
            next_candidates.extend([(net, tokens + [i], likelihood + token_likelihood[i]) for i in order])
        candidates = sorted(next_candidates, key=lambda x: -x[2])[:beam_width]
        if all([candidate[1][-1] == eos for candidate in candidates]):
            break
    return [candidate[1] for candidate in candidates] 
开发者ID:dsanno,项目名称:chainer-image-caption,代码行数:23,代码来源:generate_caption.py

示例8: __call__

# 需要导入模块: from chainer import cuda [as 别名]
# 或者: from chainer.cuda import to_cpu [as 别名]
def __call__(self, inputs):
        pos_x, pos_y, offset_x, ego_x, ego_y, pose_x, pose_y = self._prepare_input(inputs)
        batch_size, past_len, _ = pos_x.shape

        h_pos = self.pos_encoder(pos_x)
        h_ego = self.ego_encoder(ego_x)
        h = F.concat((h_pos, h_ego), axis=1)  # (B, C, 2)
        h = self.inter(h)
        h_pos = self.pos_decoder(h)
        pred_y = self.last(h_pos)  # (B, 10, C+6+28)
        pred_y = F.swapaxes(pred_y, 1, 2)
        pred_y = pred_y[:, :pos_y.shape[1], :]
        loss = F.mean_squared_error(pred_y, pos_y)

        pred_y = pred_y + F.broadcast_to(F.expand_dims(offset_x, 1), pred_y.shape)
        pred_y = cuda.to_cpu(pred_y.data) * self._std + self._mean
        return loss, pred_y, None 
开发者ID:takumayagi,项目名称:fpl,代码行数:19,代码来源:cnn.py

示例9: save_embeddings

# 需要导入模块: from chainer import cuda [as 别名]
# 或者: from chainer.cuda import to_cpu [as 别名]
def save_embeddings(path, epoch, model, vocab, metadata, execution_time):
    path = Path(path)
    embeddings = WordEmbeddingsDense()
    embeddings.vocabulary = vocab
    embeddings.metadata.update(metadata)
    embeddings.metadata["vocabulary"] = vocab.metadata
    embeddings.metadata["epoch"] = epoch
    embeddings.metadata["vecto_version"] = vecto.__version__
    embeddings.matrix = cuda.to_cpu(model.getEmbeddings(gpu=metadata["gpu"]))
    if metadata["out_type"] == 'ns':
        model.matrix_context = cuda.to_cpu(model.getEmbeddings_context())
    else:
        model.matrix_context = None
    embeddings.metadata["execution_time"] = execution_time #time_end - time_start
    embeddings.metadata["embeddings_type"] = "vanilla"
    path_out = path / f"ep_{epoch:03}"
    embeddings.save_to_dir(path_out)
    # if embeddings.matrix_context is not None:
    #     embeddings.matrix = model.matrix_context
    #     embeddings.metadata["embeddings_type"] = "context"
    #     embeddings.save_to_dir(os.path.join(path_out, 'context')) 
开发者ID:vecto-ai,项目名称:vecto,代码行数:23,代码来源:train_word2vec.py

示例10: report

# 需要导入模块: from chainer import cuda [as 别名]
# 或者: from chainer.cuda import to_cpu [as 别名]
def report(images, out, name, ch_axis=1, row=0, mode=None, batched=True):
    if isinstance(images, chainer.Variable):
        images = images.data
    images = cuda.to_cpu(images)
    if batched:
        stuck_image = _get_stuck_batched_image(images, ch_axis, row)
    else:
        stuck_image = _get_stuck_image(images, ch_axis)

    now = datetime.datetime.now()
    ts = get_unixtime(now)
    filename = '{}_{}.png'.format(name, get_hash('{}'.format(ts)))
    filepath = os.path.join(out, filename)
    _save_image(_normalize_8bit(stuck_image), filepath, mode=mode)

    return filename, now 
开发者ID:chainer,项目名称:chainerui,代码行数:18,代码来源:image_report.py

示例11: test_forward_cpu_gpu_equal

# 需要导入模块: from chainer import cuda [as 别名]
# 或者: from chainer.cuda import to_cpu [as 别名]
def test_forward_cpu_gpu_equal(self):
        # cpu
        x_cpu = chainer.Variable(self.x)
        rois_cpu = chainer.Variable(self.rois)
        roi_indices_cpu = chainer.Variable(self.roi_indices)
        y_cpu = functions.roi_average_align_2d(
            x_cpu, rois_cpu, roi_indices_cpu, outsize=self.outsize,
            spatial_scale=self.spatial_scale,
            sampling_ratio=self.sampling_ratio,
        )

        # gpu
        x_gpu = chainer.Variable(cuda.to_gpu(self.x))
        rois_gpu = chainer.Variable(cuda.to_gpu(self.rois))
        roi_indices_gpu = chainer.Variable(cuda.to_gpu(self.roi_indices))
        y_gpu = functions.roi_average_align_2d(
            x_gpu, rois_gpu, roi_indices_gpu, outsize=self.outsize,
            spatial_scale=self.spatial_scale,
            sampling_ratio=self.sampling_ratio,
        )
        testing.assert_allclose(y_cpu.data, cuda.to_cpu(y_gpu.data)) 
开发者ID:chainer,项目名称:chainer,代码行数:23,代码来源:test_roi_average_align_2d.py

示例12: convert

# 需要导入模块: from chainer import cuda [as 别名]
# 或者: from chainer.cuda import to_cpu [as 别名]
def convert(batch, device):
    if device is None:
        def to_device(x):
            return x
    elif device < 0:
        to_device = cuda.to_cpu
    else:
        def to_device(x):
            return cuda.to_gpu(x, device, cuda.Stream.null)

    return tuple(
        [to_device(d['lefts']) for d in batch] +
        [to_device(d['rights']) for d in batch] +
        [to_device(d['dests']) for d in batch] +
        [to_device(d['labels']) for d in batch] +
        [to_device(d['words']) for d in batch] +
        [to_device(d['leaf_labels']) for d in batch]
    ) 
开发者ID:pfnet,项目名称:pfio,代码行数:20,代码来源:train_recursive_minibatch.py

示例13: mean_feature

# 需要导入模块: from chainer import cuda [as 别名]
# 或者: from chainer.cuda import to_cpu [as 别名]
def mean_feature(net, paths, image_size, base_feature, top_num, batch_size, clip_rect=None):
    xp = net.xp
    image_num = len(paths)
    features = []
    for i in six.moves.range(0, image_num, batch_size):
        x = [preprocess_image(Image.open(path).convert('RGB'), image_size, clip_rect) for path in paths[i:i + batch_size]]
        x = xp.asarray(np.concatenate(x, axis=0))
        y = feature(net, x)
        features.append([cuda.to_cpu(layer.data) for layer in y])
    if image_num > top_num:
        last_features = np.concatenate([f[-1] for f in features], axis=0)
        last_features = last_features.reshape((last_features.shape[0], -1))
        base_feature = cuda.to_cpu(base_feature).reshape((1, -1,))
        diff = np.sum((last_features - base_feature) ** 2, axis=1)

        nearest_indices = np.argsort(diff)[:top_num]
        nearests = [np.concatenate(xs, axis=0)[nearest_indices] for xs in zip(*features)]
    else:
        nearests = [np.concatenate(xs, axis=0) for xs in zip(*features)]

    return [xp.asarray(np.mean(f, axis=0, keepdims=True)) for f in nearests] 
开发者ID:dsanno,项目名称:chainer-dfi,代码行数:23,代码来源:train.py

示例14: iter_apply

# 需要导入模块: from chainer import cuda [as 别名]
# 或者: from chainer.cuda import to_cpu [as 别名]
def iter_apply(Xs, Ms, Ys):
    # fns = [lambda x: np.concatenate(x, 0), lambda x: float(np.sum(x))]
    logits = []
    cost = 0
    with chainer.using_config('train', False), \
            chainer.using_config('enable_backprop', False):
        for xmb, mmb, ymb in iter_data(
                Xs, Ms, Ys, n_batch=n_batch_train, truncate=False, verbose=True):
            n = len(xmb)
            XMB = model.xp.asarray(xmb)
            YMB = model.xp.asarray(ymb)
            MMB = model.xp.asarray(mmb)
            h = model(XMB)
            clf_logits = clf_head(h, XMB)
            clf_logits *= n
            clf_losses = compute_loss_fct(
                XMB, YMB, MMB, clf_logits, only_return_losses=True)
            clf_losses *= n
            logits.append(cuda.to_cpu(clf_logits.array))
            cost += cuda.to_cpu(F.sum(clf_losses).array)
        logits = np.concatenate(logits, 0)
    return logits, cost 
开发者ID:chainer,项目名称:models,代码行数:24,代码来源:train.py

示例15: getAndUpdateBufferY

# 需要导入模块: from chainer import cuda [as 别名]
# 或者: from chainer.cuda import to_cpu [as 别名]
def getAndUpdateBufferY(self, data):

        if  self._iter < self._max_buffer_size:
            self._buffer_y[self._iter, :] = data[0]
            return data

        self._buffer_y[0:self._max_buffer_size-2, :] = self._buffer_y[1:self._max_buffer_size-1, :]
        self._buffer_y[self._max_buffer_size-1, : ]=data[0]

        if np.random.rand() < 0.5:
            return data
        id = np.random.randint(0, self._max_buffer_size)
        return self._buffer_y[id, :].reshape((1, 3, self._image_size, self._image_size))
        """
    def save_images(self,img, w=2, h=3):
        img = cuda.to_cpu(img)
        img = img.reshape((w, h, 3, self._image_size, self._image_size))
        img = img.transpose(0,1,3,4,2)
        img = (img + 1) *127.5
        img = np.clip(img, 0, 255)
        img = img.astype(np.uint8)
        img = img.reshape((w, h, self._image_size, self._image_size, 3)).transpose(0,2,1,3,4).reshape((w*self._image_size, h*self._image_size, 3))[:,:,::-1]
        Image.fromarray(img).save(self._eval_foler+"/iter_"+str(self._iter)+".jpg")
        """ 
开发者ID:Aixile,项目名称:chainer-cyclegan,代码行数:26,代码来源:updater.py


注:本文中的chainer.cuda.to_cpu方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。