Example #1
0
def classifier(img_path, model_name):
    # load the image
    try:
        img_pil = Image.open(img_path)
    except: # has not been tested
        sys.exit("Exception: unable to open " + img_path)

    # define transforms
    preprocess = transforms.Compose([
        transforms.Resize(256),
        transforms.CenterCrop(224),
        transforms.ToTensor(),
        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
    ])

    # preprocess the image
    img_tensor = preprocess(img_pil)

    # resize the tensor (add dimension for batch)
    img_tensor.unsqueeze_(0)

    # wrap input in variable, wrap input in variable - no longer needed for
    # v 0.4 & higher code changed 04/26/2018 by Jennifer S. to handle PyTorch upgrade
    pytorch_ver = __version__.split('.')

    # pytorch versions 0.4 & hihger - Variable depreciated so that it returns
    # a tensor. So to address tensor as output (not wrapper) and to mimic the
    # affect of setting volatile = True (because we are using pretrained models
    # for inference) we can set requires_gradient to False. Here we just set
    # requires_grad_ to False on our tensor
    if int(pytorch_ver[0]) > 0 or int(pytorch_ver[1]) >= 4:
        img_tensor.requires_grad_(False)

    # pytorch versions less than 0.4 - uses Variable because not-depreciated
    else:
        # apply model to input
        # wrap input in variable
        data = Variable(img_tensor, volatile = True)

    # apply model to input
    model = models[model_name]

    # puts model in evaluation mode
    # instead of (default)training mode
    model = model.eval()

    # apply data to model - adjusted based upon version to account for
    # operating on a Tensor for version 0.4 & higher.
    if int(pytorch_ver[0]) > 0 or int(pytorch_ver[1]) >= 4:
        output = model(img_tensor)

    # pytorch versions less than 0.4
    else:
        # apply data to model
        output = model(data)

    # return index corresponding to predicted class
    pred_idx = output.data.numpy().argmax()

    return imagenet_classes_dict[pred_idx]
def classifier(img_path, model_name):
    # load the image
    img_pil = Image.open(img_path)

    # define transforms
    preprocess = transforms.Compose([
        transforms.Resize(256),
        transforms.CenterCrop(224),
        transforms.ToTensor(),
        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
    ])
    
    # preprocess the image
    img_tensor = preprocess(img_pil)
    
    # resize the tensor (add dimension for batch)
    img_tensor.unsqueeze_(0)
    
    # wrap input in variable, wrap input in variable - no longer needed for
    # v 0.4 & higher code changed 04/26/2018 by Jennifer S. to handle PyTorch upgrade
    pytorch_ver = __version__.split('.')
    
    # pytorch versions 0.4 & hihger - Variable depreciated so that it returns
    # a tensor. So to address tensor as output (not wrapper) and to mimic the 
    # affect of setting volatile = True (because we are using pretrained models
    # for inference) we can set requires_gradient to False. Here we just set 
    # requires_grad_ to False on our tensor 
    if int(pytorch_ver[0]) > 0 or int(pytorch_ver[1]) >= 4:
        img_tensor.requires_grad_(False)
    
    # pytorch versions less than 0.4 - uses Variable because not-depreciated
    else:
        # apply model to input
        # wrap input in variable
        data = Variable(img_tensor, volatile = True) 

    # apply model to input
    model = models[model_name]

    # puts model in evaluation mode
    # instead of (default)training mode
    model = model.eval()
    
    # apply data to model - adjusted based upon version to account for 
    # operating on a Tensor for version 0.4 & higher.
    if int(pytorch_ver[0]) > 0 or int(pytorch_ver[1]) >= 4:
        output = model(img_tensor)

    # pytorch versions less than 0.4
    else:
        # apply data to model
        output = model(data)

    # return index corresponding to predicted class
    pred_idx = output.data.numpy().argmax()

    return imagenet_classes_dict[pred_idx]
Example #3
0
def classifier(img_path, model_name):
    # load the image
    img_pil = Image.open(img_path)

    # define transforms
    preprocess = transforms.Compose([
        transforms.Resize(256),
        transforms.CenterCrop(224),
        transforms.ToTensor(),
        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
    ])

    # preprocess the image
    img_tensor = preprocess(img_pil)

    # resize the tensor (add dimension for batch)
    img_tensor.unsqueeze_(0)

    # wrap input in variable, wrap input in variable - no longer needed for
    # v0.4 & higher code to handle PyTorch upgrade
    pytorch_ver = __version__.split(".")

    if int(pytorch_ver[0]) > 0 or int(pytorch_ver[1]) >= 4:
        img_tensor.requires_grad_(False)

    else:
        data = Variable(img_tensor, volatile=True)

    # apply model to input
    model = models[model_name]

    # puts model in evaluation mode
    # instead of (default)training mode
    model = model.eval()

    if int(pytorch_ver[0])>0 or int(pytorch_ver[1])>=4:
        output = model(img_tensor)
    else:
        output = model(data)

    pred_idx = output.data.numpy().argmax()

    return imagenet_classes_dict[pred_idx]
Example #4
0
def classifier(img_path, model_name):
    # load the image
    img_pil = Image.open(img_path)

    # define transforms
    preprocess = transforms.Compose([
        transforms.Resize(256),
        transforms.CenterCrop(224),
        transforms.ToTensor(),
        transforms.Normalize(mean=[0.485, 0.456, 0.406],
                             std=[0.229, 0.224, 0.225])
    ])

    # preprocess the image
    img_tensor = preprocess(img_pil)
    img_tensor.unsqueeze_(0)
    pytorch_ver = __version__.split('.')

    if int(pytorch_ver[0]) > 0 or int(pytorch_ver[1]) >= 4:
        img_tensor.requires_grad_(False)

    # pytorch versions less than 0.4 - uses Variable because not-depreciated
    else:
        # apply model to input
        # wrap input in variable
        data = Variable(img_tensor, volatile=True)

    # apply model to input
    model = models[model_name]
    model = model.eval()
    # apply data to model - adjusted based upon version to account for
    # operating on a Tensor for version 0.4 & higher.
    if int(pytorch_ver[0]) > 0 or int(pytorch_ver[1]) >= 4:
        output = model(img_tensor)

    # pytorch versions less than 0.4
    else:
        # apply data to model
        output = model(data)

    pred_idx = output.data.numpy().argmax()

    return imagenet_classes_dict[pred_idx]
Example #5
0
config = ConfigParser()
rootdir = os.path.dirname(os.path.abspath(__file__))
config.read(os.path.join(rootdir, 'setup.cfg'))
INSTALL_REQUIRES = config['options']['install_requires']
INSTALL_REQUIRES = INSTALL_REQUIRES.split('\n')

COMPILED_BACKEND = os.environ.get('NI_COMPILED_BACKEND', '')
if not COMPILED_BACKEND:
    warn(c_deprecation_warning, DeprecationWarning)
    COMPILED_BACKEND = 'TS'

if COMPILED_BACKEND.upper() == 'C':
    from setup_cext import prepare_extensions
    from buildtools import build_ext
    from torch import __version__ as torch_version
    torch_version = torch_version.split('.')
    if '.'.join(torch_version[:2]) == '1.7':
        torch_version = '.'.join(torch_version[:3])  # we need the patch
    else:
        torch_version = '.'.join(torch_version[:3])
    PYTORCH_TARGET = os.environ.get('NI_PYTORCH_TARGET', '')
    SETUP_KWARGS['ext_package'] = 'nitorch'
    SETUP_KWARGS['ext_modules'] = prepare_extensions()
    CMDCLASS.update({'build_ext': build_ext})
    INSTALL_REQUIRES += [f'torch=={torch_version}']

if COMPILED_BACKEND.upper() == 'MONAI':
    INSTALL_REQUIRES += ['monai>=0.5']

SETUP_KWARGS['install_requires'] = INSTALL_REQUIRES
SETUP_KWARGS['cmdclass'] = CMDCLASS
Example #6
0
#
# Copyright (C) Mellanox Technologies Ltd. 2001-2020.  ALL RIGHTS RESERVED.
#

import os
import sys
from setuptools import setup
from torch.utils import cpp_extension
from torch import __version__ as torch_version

ver_major, ver_minor = torch_version.split(".")[:2]
ver_major = '-DTORCH_VER_MAJOR=' + ver_major
ver_minor = '-DTORCH_VER_MINOR=' + ver_minor

ucc_plugin_dir = os.path.dirname(os.path.abspath(__file__))
ucx_home = os.environ.get("UCX_HOME")
if ucx_home is None:
    ucx_home = os.environ.get("HPCX_UCX_DIR")
if ucx_home is None:
    print("Couldn't find UCX install dir, please set UCX_HOME env variable")
    sys.exit(1)

plugin_sources = [
    "src/torch_ucc.cpp", "src/torch_ucc_sendrecv.cpp",
    "src/torch_ucx_alltoall.cpp", "src/torch_ucx_coll.cpp"
]
plugin_include_dirs = [
    "{}/include/".format(ucc_plugin_dir), "{}/include/".format(ucx_home)
]
plugin_library_dirs = ["{}/lib/".format(ucx_home)]
plugin_libraries = ["ucp", "uct", "ucm", "ucs"]