Example #1
0
def get_augs(shape):
    train_augs = [
        image.HorizontalFlipAug(.5),
        image.RandomCropAug((shape, shape))
    ]
    valid_augs = train_augs
    tests_augs = [image.CenterCropAug((shape, shape))]
    return train_augs, valid_augs, tests_augs
Example #2
0
def augment_data(imags, label):
    datas, labels = [], []
    n = imags.shape[0]
    for k in range(n):
        imag = imags[k].reshape(shape=(1, imags[k].shape[0], imags[k].shape[1],
                                       imags[k].shape[2]))
        for i in range(4):
            trans_band = transform(
                imag, image.HorizontalFlipAug(.5)).astype('float32')
            datas.append(img_norm(trans_band))
            labels.append(label[k].asscalar())

        for i in range(9):
            trans_band = transform(
                imag, image.RandomSizedCropAug((75, 75), .75,
                                               (.8, 1.2))).astype('float32')
            datas.append(img_norm(trans_band))
            labels.append(label[k].asscalar())
        # brightness augmenter
        for i in range(9):
            trans_band = transform(
                imag, image.BrightnessJitterAug(.1)).astype('float32')
            datas.append(img_norm(trans_band))
            labels.append(label[k].asscalar())
        # random crop augmenter
        for i in range(9):
            trans_band = resize(transform(imag, image.RandomCropAug((50, 50))),
                                75).astype('float32')
            datas.append(img_norm(trans_band))
            labels.append(label[k].asscalar())
        # center crop augmenter
        trans_band = resize(transform(imag, image.CenterCropAug((50, 50))),
                            75).astype('float32')
        datas.append(img_norm(trans_band))
        labels.append(label[k].asscalar())
    ds = nd.concat(*datas, dim=0)
    return ds, labels
Example #3
0
from mxnet import nd, gluon, image

batch_size = 64
train_augs = [image.HorizontalFlipAug(.5), image.RandomCropAug((224, 224))]
test_augs = [image.CenterCropAug((224, 224))]
data_dir = '/home/zhbli/temp/dog_dataset'
train_imgs = gluon.data.vision.ImageFolderDataset(
    data_dir + '/train', transform=lambda X, y: transform(X, y, train_augs))
test_imgs = gluon.data.vision.ImageFolderDataset(
    data_dir + '/test', transform=lambda X, y: transform(X, y, test_augs))


def transform(data, label, augs):
    data = data.astype('float32')
    for aug in augs:
        data = aug(data)
    data = nd.transpose(data, (2, 0, 1))
    return data, nd.array([label]).asscalar().astype('float32')


def getDataset():
    train_data = gluon.data.DataLoader(train_imgs, batch_size, shuffle=True)
    test_data = gluon.data.DataLoader(test_imgs, batch_size)
    return train_data, test_data
print("classes: " + str(len(training_map)))
net = mobilenet1_0(classes=len(training_map))

from mxnet import init
net.features = pretrained_net.features
net.output.initialize(init.Xavier())

from mxnet.image import color_normalize
from mxnet import image

train_augs = [
    image.HorizontalFlipAug(0.5),
    image.BrightnessJitterAug(.3),
    image.HueJitterAug(.1)
]
test_augs = [image.ResizeAug(224), image.CenterCropAug((224, 224))]


def transform(data, label, augs):
    data = data.astype('float32')
    for aug in augs:
        data = aug(data)
    data = nd.transpose(data, (2, 0, 1))
    return data, nd.array([label]).asscalar().astype('float32')


from mxnet.gluon.data.vision import ImageRecordDataset

train_rec = root + '/data/household/train/household.rec'
validation_rec = root + '/data/household/validation/household.rec'
test_rec = root + '/data/household/test/household.rec'
Example #5
0
            continue
        img_dir = os.path.join(path_crocodile, file_name)
        img_arr = mx.image.imread(img_dir)
        img_arr = nd.transpose(img_arr, (2, 0, 1))
        img_arr = (img_arr.astype(np.float32) / 255)
        img_arr = nd.array(img_arr.reshape((1, ) + img_arr.shape))
        img_list.append(img_arr)
        img_list_crocodile.append(img_arr)

size = 28
train_augs = [
    image.HorizontalFlipAug(.5),
    image.ColorJitterAug(.5, .5, .5),
    image.RandomCropAug((size, size)),
]
test_augs = [image.CenterCropAug((size, size))]


def apply_aug_list(img, augs):
    for f in augs:
        img = f(img)
    return img


def try_gpu():
    try:
        ctx = mx.gpu()
        _ = nd.array([0], ctx=ctx)
    except:
        ctx = mx.cpu()
    return ctx
Example #6
0
apply(img, aug)

# 随机色调变化
aug = image.HueJitterAug(.5)
apply(img, aug)


def apply_aug_list(img, augs):
    for aug in augs:
        img = aug(img)
    return img


train_augs = [image.HorizontalFlipAug(.5), image.RandomCropAug((28, 28))]

test_augs = [image.CenterCropAug((28, 28))]

from mxnet import gluon


def get_transform(augs):
    def transform(data, label):
        data = data.astype('float32')
        if augs is not None:
            data = nd.stack(*[apply_aug_list(d, augs) for d in data])
        data = nd.transpose(data, (0, 3, 1, 2))
        return data, label.astype('float32')

    return transform

Example #7
0
def apply_aug_list(img, augs):
    for f in augs:
        img = f(img)
    return img

def train(train_augs, test_augs, learning_rate=.1):
    batch_size = 128
    num_epochs = 10
    ctx = utils.try_all_gpus()
    loss = gluon.loss.SoftmaxCrossEntropyLoss()
    train_data, test_data = get_data(
        batch_size, train_augs, test_augs)
    net = utils.resnet18(10)
    net.initialize(ctx=ctx, init=init.Xavier())
    net.hybridize()
    trainer = gluon.Trainer(net.collect_params(),
                            'sgd', {'learning_rate': learning_rate})
    utils.train(
        train_data, test_data, net, loss, trainer, ctx, num_epochs)


train_augs = [
    image.HorizontalFlipAug(.5),
    image.RandomCropAug((32,32))
]

test_augs = [
    image.CenterCropAug((32,32))
]

train(train_augs, test_augs)
Example #8
0
from src import utils
import mxnet as mx
import base64
from mxnet import image
from mxnet import nd
from collections import namedtuple

train_augs = [
    image.HorizontalFlipAug(1.),
    image.RandomCropAug((224, 224))
]

test_augs = [
    image.CenterCropAug((224, 224))
]

def transform(data, label, augs):
    data = data.astype('float32')
    for aug in augs:
        data = aug(data)
    data = nd.transpose(data, (2, 0, 1))
    return data, nd.array([label]).asscalar().astype('float32')

net = mx.mod.Module.load('../model/food', 0, True)
net.bind(data_shapes=[('data', (64, 3, 244, 244))])
batch = namedtuple('batch', ['data'])

def score_image(image_base64_string):
    with open('target_image.jpg', 'wb') as f:
        f.write(base64.b64decode(image_base64_string))
        f.close()
    return (x - x_min) / (x_max - x_min)


def rescale_per_image(x):
    assert x.ndim == 4
    x = x.copy()
    for i in range(x.shape[0]):
        min_val = x[i].min().asscalar()
        max_val = x[i].max().asscalar()
        x[i] = rescale(x[i], min_val, max_val)
    return x


train_augs = image.HorizontalFlipAug(1)

test_augs = [image.CenterCropAug((32, 32))]

batch_size = 64
learning_rate = .1
num_epochs = 500
randseed = 10
test_n = 'test15'
ctx = utils.try_all_gpus()
loss = gluon.loss.SoftmaxCrossEntropyLoss()
train_data, test_data, data_num = get_data(
    'C:/lagBear/S***N/finally_data/cnn_data.mat',
    randseed,
    batch_size=batch_size,
    train_augs=train_augs)

### resnet network ###
import mxnet as mx
import numpy as np
import os
import Inception3_modify
from mxnet import gluon, image, nd, ndarray, init
from mxnet.gluon.model_zoo import vision as models
import sys
sys.path.append('..')
import utils

train_augs = [image.HorizontalFlipAug(.5), image.RandomCropAug((299, 299))]

test_augs = [image.CenterCropAug((299, 299))]


def transform(data, label, augs):
    data = data.astype('float32')
    for aug in augs:
        data = aug(data)
    data = nd.transpose(data, (2, 0, 1))
    return data, nd.array([label]).asscalar().astype('float32')


ctx = mx.gpu()
data_dir = './data'
batch_size = 16
epochs = 1

###################################### true train data
train_imgs = gluon.data.vision.ImageFolderDataset(
    data_dir + '/train_valid_test/Images',
Example #11
0
from mxnet import image
import mxnet as mx
import model
import os


def transform(data, label, augs):
    data = data.astype('float32')
    for aug in augs:
        data = aug(data)

    data = nd.transpose(data, (2, 0, 1))
    return data, nd.array([label]).asscalar().astype('float32')


augs = [image.HorizontalFlipAug(.5), image.CenterCropAug((227, 227))]

test_augs = [image.CenterCropAug((227, 227))]

train_set = gluon.data.vision.ImageFolderDataset(
    root='~/.mxnet/datasets/oxford102/train_datas',
    transform=lambda X, y: transform(X, y, augs))
test_set = gluon.data.vision.ImageFolderDataset(
    root='~/.mxnet/datasets/oxford102/test_datas',
    transform=lambda X, y: transform(X, y, augs))

lossFunc = gluon.loss.SoftmaxCrossEntropyLoss()

net = model.AlexNet()
net.initialize(init=mx.init.Xavier(), ctx=mx.gpu())