Viewing File: /home/ubuntu/.local/lib/python3.10/site-packages/tensorboardX/x2num.py

# DO NOT alter/distruct/free input object !
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import numpy as np
import six


def make_np(x):
    if isinstance(x, np.ndarray):
        return x
    if isinstance(x, six.string_types):  # Caffe2 will pass name of blob(s) to fetch
        return prepare_caffe2(x)
    if np.isscalar(x):
        return np.array([x])
    if 'torch' in str(type(x)):
        return prepare_pytorch(x)
    if 'chainer' in str(type(x)):
        return prepare_chainer(x)
    if 'mxnet' in str(type(x)):
        return prepare_mxnet(x)
    raise NotImplementedError(
        'Got {}, but expected numpy array or torch tensor.'.format(type(x)))


def prepare_pytorch(x):
    import torch
    if isinstance(x, torch.autograd.Variable):
        x = x.data
    x = x.cpu().numpy()
    return x


def prepare_theano(x):
    import theano
    pass


def prepare_caffe2(x):
    from caffe2.python import workspace
    x = workspace.FetchBlob(x)
    return x


def prepare_mxnet(x):
    x = x.asnumpy()
    return x


def prepare_chainer(x):
    import chainer
    x = chainer.cuda.to_cpu(x.data)
    return x
Back to Directory File Manager