def create_reader(map_file, mean_file, train):
    if not os.path.exists(map_file) or not os.path.exists(mean_file):
        raise RuntimeError(
            "File '%s' or '%s' does not exist. Please run install_cifar10.py from DataSets/CIFAR-10 to fetch them"
            % (map_file, mean_file))

    # transformation pipeline for the features has jitter/crop only when training
    transforms = []
    if train:
        transforms += [
            ImageDeserializer.crop(crop_type='Random',
                                   ratio=0.8,
                                   jitter_type='uniRatio')  # train uses jitter
        ]
    transforms += [
        ImageDeserializer.scale(width=image_width,
                                height=image_height,
                                channels=num_channels,
                                interpolations='linear'),
        ImageDeserializer.mean(mean_file)
    ]
    # deserializer
    return MinibatchSource(
        ImageDeserializer(
            map_file,
            StreamDefs(
                features=StreamDef(
                    field='image', transforms=transforms
                ),  # first column in map file is referred to as 'image'
                labels=StreamDef(field='label',
                                 shape=num_classes))))  # and second as 'label'
示例#2
0
def create_reader(map_file, mean_file, train):
    if not os.path.exists(map_file) or not os.path.exists(mean_file):
        raise RuntimeError(
            "File '%s' or '%s' does not exist. Please run install_cifar10.py from DataSets/CIFAR-10 to fetch them"
            % (map_file, mean_file)
        )

    # transformation pipeline for the features has jitter/crop only when training
    transforms = []
    if train:
        transforms += [
            ImageDeserializer.crop(crop_type="Random", ratio=0.8, jitter_type="uniRatio")  # train uses jitter
        ]
    transforms += [
        ImageDeserializer.scale(width=image_width, height=image_height, channels=num_channels, interpolations="linear"),
        ImageDeserializer.mean(mean_file),
    ]
    # deserializer
    return MinibatchSource(
        ImageDeserializer(
            map_file,
            StreamDefs(
                features=StreamDef(
                    field="image", transforms=transforms
                ),  # first column in map file is referred to as 'image'
                labels=StreamDef(field="label", shape=num_classes),
            ),
        )
    )  # and second as 'label'
示例#3
0
def create_test_mb_source(features_stream_name, labels_stream_name,
                          image_height, image_width, num_channels, num_classes,
                          cifar_data_path):

    path = os.path.normpath(os.path.join(abs_path, cifar_data_path))

    map_file = os.path.join(path, TEST_MAP_FILENAME)
    mean_file = os.path.join(path, MEAN_FILENAME)

    if not os.path.exists(map_file) or not os.path.exists(mean_file):
        cifar_py3 = "" if sys.version_info.major < 3 else "_py3"
        raise RuntimeError(
            "File '%s' or '%s' do not exist. Please run CifarDownload%s.py and CifarConverter%s.py from CIFAR-10 to fetch them"
            % (map_file, mean_file, cifar_py3, cifar_py3))

    image = ImageDeserializer(map_file)
    image.map_features(features_stream_name, [
        ImageDeserializer.crop(
            crop_type='Random', ratio=0.8, jitter_type='uniRatio'),
        ImageDeserializer.scale(width=image_width,
                                height=image_height,
                                channels=num_channels,
                                interpolations='linear'),
        ImageDeserializer.mean(mean_file)
    ])
    image.map_labels(labels_stream_name, num_classes)

    rc = ReaderConfig(image, epoch_size=sys.maxsize)
    return rc.minibatch_source()
示例#4
0
def create_reader(map_file, mean_file, train, distributed_communicator=None):
    if not os.path.exists(map_file) or not os.path.exists(mean_file):
        cifar_py3 = "" if sys.version_info.major < 3 else "_py3"
        raise RuntimeError(
            "File '%s' or '%s' does not exist. Please run CifarDownload%s.py and CifarConverter%s.py from CIFAR-10 to fetch them"
            % (map_file, mean_file, cifar_py3, cifar_py3))

    # transformation pipeline for the features has jitter/crop only when training
    transforms = []
    if train:
        transforms += [
            ImageDeserializer.crop(crop_type='Random',
                                   ratio=0.8,
                                   jitter_type='uniRatio')  # train uses jitter
        ]
    transforms += [
        ImageDeserializer.scale(width=image_width,
                                height=image_height,
                                channels=num_channels,
                                interpolations='linear'),
        ImageDeserializer.mean(mean_file)
    ]
    # deserializer
    return MinibatchSource(
        ImageDeserializer(
            map_file,
            StreamDefs(
                features=StreamDef(
                    field='image', transforms=transforms
                ),  # first column in map file is referred to as 'image'
                labels=StreamDef(field='label',
                                 shape=num_classes))),  # and second as 'label'
        distributed_communicator=distributed_communicator)
示例#5
0
def test_image():
    from cntk.io import ReaderConfig, ImageDeserializer

    map_file = "input.txt"
    mean_file = "mean.txt"
    epoch_size = 150

    feature_name = "f"
    image_width = 100
    image_height = 200
    num_channels = 3

    label_name = "l"
    num_classes = 7

    image = ImageDeserializer(map_file)
    image.map_features(
        feature_name,
        [
            ImageDeserializer.crop(crop_type="Random", ratio=0.8, jitter_type="uniRatio"),
            ImageDeserializer.scale(
                width=image_width, height=image_height, channels=num_channels, interpolations="linear"
            ),
            ImageDeserializer.mean(mean_file),
        ],
    )
    image.map_labels(label_name, num_classes)

    rc = ReaderConfig(image, randomize=False, epoch_size=epoch_size)

    assert rc["epochSize"] == epoch_size
    assert rc["randomize"] == False
    assert len(rc["deserializers"]) == 1
    d = rc["deserializers"][0]
    assert d["type"] == "ImageDeserializer"
    assert d["file"] == map_file
    assert set(d["input"].keys()) == {label_name, feature_name}

    l = d["input"][label_name]
    assert l["labelDim"] == num_classes

    f = d["input"][feature_name]
    assert set(f.keys()) == {"transforms"}
    t0, t1, t2 = f["transforms"]
    assert t0["type"] == "Crop"
    assert t1["type"] == "Scale"
    assert t2["type"] == "Mean"
    t0["cropType"] == "Random"
    t0["cropRatio"] == 0.8
    t0["jitterType"] == "uniRatio"
    t1["width"] == image_width
    t1["height"] == image_height
    t1["channels"] == num_channels
    t1["interpolations"] == "linear"
    t2["type"] == "mean"
    t2["meanFile"] == mean_file

    # TODO depends on ImageReader.dll
    """ 
示例#6
0
def test_image():
    from cntk.io import ReaderConfig, ImageDeserializer
    map_file = "input.txt"
    mean_file = "mean.txt"
    epoch_size = 150

    feature_name = "f"
    image_width = 100
    image_height = 200
    num_channels = 3

    label_name = "l"
    num_classes = 7

    image = ImageDeserializer(map_file)
    image.map_features(feature_name, [
        ImageDeserializer.crop(
            crop_type='Random', ratio=0.8, jitter_type='uniRatio'),
        ImageDeserializer.scale(width=image_width,
                                height=image_height,
                                channels=num_channels,
                                interpolations='linear'),
        ImageDeserializer.mean(mean_file)
    ])
    image.map_labels(label_name, num_classes)

    rc = ReaderConfig(image, randomize=False, epoch_size=epoch_size)

    assert rc['epochSize'] == epoch_size
    assert rc['randomize'] == False
    assert len(rc['deserializers']) == 1
    d = rc['deserializers'][0]
    assert d['type'] == 'ImageDeserializer'
    assert d['file'] == map_file
    assert set(d['input'].keys()) == {label_name, feature_name}

    l = d['input'][label_name]
    assert l['labelDim'] == num_classes

    f = d['input'][feature_name]
    assert set(f.keys()) == {'transforms'}
    t0, t1, t2 = f['transforms']
    assert t0['type'] == 'Crop'
    assert t1['type'] == 'Scale'
    assert t2['type'] == 'Mean'
    t0['cropType'] == 'Random'
    t0['cropRatio'] == 0.8
    t0['jitterType'] == 'uniRatio'
    t1['width'] == image_width
    t1['height'] == image_height
    t1['channels'] == num_channels
    t1['interpolations'] == 'linear'
    t2['type'] == 'mean'
    t2['meanFile'] == mean_file

    # TODO depends on ImageReader.dll
    ''' 
示例#7
0
def test_image():
    from cntk.io import ReaderConfig, ImageDeserializer
    map_file = "input.txt"
    mean_file = "mean.txt"
    epoch_size = 150

    feature_name = "f"
    image_width = 100
    image_height = 200
    num_channels = 3

    label_name = "l"
    num_classes = 7
    
    image = ImageDeserializer(map_file)
    image.map_features(feature_name,
            [ImageDeserializer.crop(crop_type='Random', ratio=0.8,
                jitter_type='uniRatio'),
             ImageDeserializer.scale(width=image_width, height=image_height,
                 channels=num_channels, interpolations='linear'),
             ImageDeserializer.mean(mean_file)])
    image.map_labels(label_name, num_classes)

    rc = ReaderConfig(image, randomize=False, epoch_size=epoch_size)

    assert rc['epochSize'].value == epoch_size
    assert rc['randomize'] == False
    assert len(rc['deserializers']) == 1
    d = rc['deserializers'][0]
    assert d['type'] == 'ImageDeserializer'
    assert d['file'] == map_file
    assert set(d['input'].keys()) == {label_name, feature_name}

    l = d['input'][label_name]
    assert l['labelDim'] == num_classes

    f = d['input'][feature_name]
    assert set(f.keys()) == { 'transforms' }
    t0, t1, t2 = f['transforms']
    assert t0['type'] == 'Crop'
    assert t1['type'] == 'Scale'
    assert t2['type'] == 'Mean'
    t0['cropType'] == 'Random'
    t0['cropRatio'] == 0.8
    t0['jitterType'] == 'uniRatio'
    t1['width'] == image_width
    t1['height'] == image_height
    t1['channels'] == num_channels
    t1['interpolations'] == 'linear'
    t2['type'] == 'mean'
    t2['meanFile'] == mean_file

    # TODO depends on ImageReader.dll
    ''' 
示例#8
0
def create_mb_source(features_stream_name, labels_stream_name, image_height,
                     image_width, num_channels, num_classes, cifar_data_path):
    map_file = os.path.join(cifar_data_path, TRAIN_MAP_FILENAME)
    mean_file = os.path.join(cifar_data_path, MEAN_FILENAME)

    if not os.path.exists(map_file) or not os.path.exists(mean_file):
        cifar_py3 = "" if sys.version_info.major < 3 else "_py3"
        raise RuntimeError(
            "File '%s' or '%s' do not exist. Please run CifarDownload%s.py and CifarConverter%s.py from CIFAR-10 to fetch them"
            % (map_file, mean_file, cifar_py3, cifar_py3))

    image = ImageDeserializer(map_file)
    image.map_features(feature_name, [
        ImageDeserializer.crop(
            crop_type='Random', ratio=0.8, jitter_type='uniRatio'),
        ImageDeserializer.scale(width=image_width,
                                height=image_height,
                                channels=num_channels,
                                interpolations='linear'),
        ImageDeserializer.mean(mean_file)
    ])
    image.map_labels(label_name, num_classes)

    rc = ReaderConfig(image, epoch_size=sys.maxsize)

    input_streams_config = {
        features_stream_name: features_stream_config,
        labels_stream_name: labels_stream_config
    }
    deserializer_config = {
        "type": "ImageDeserializer",
        "file": map_file,
        "input": input_streams_config
    }

    minibatch_config = {
        "epochSize": sys.maxsize,
        "deserializers": [deserializer_config]
    }
    print(minibatch_config)

    return minibatch_source(minibatch_config)
def create_reader(map_file, mean_file, train, distributed_after=INFINITE_SAMPLES):
    if not os.path.exists(map_file) or not os.path.exists(mean_file):
        raise RuntimeError("File '%s' or '%s' does not exist. Please run install_cifar10.py from DataSets/CIFAR-10 to fetch them" %
                           (map_file, mean_file))

    # transformation pipeline for the features has jitter/crop only when training
    transforms = []
    if train:
        transforms += [
            ImageDeserializer.crop(crop_type='Random', ratio=0.8, jitter_type='uniRatio') # train uses jitter
        ]
    transforms += [
        ImageDeserializer.scale(width=image_width, height=image_height, channels=num_channels, interpolations='linear'),
        ImageDeserializer.mean(mean_file)
    ]
    # deserializer
    return MinibatchSource(
        ImageDeserializer(map_file, StreamDefs(
            features = StreamDef(field='image', transforms=transforms), # first column in map file is referred to as 'image'
            labels   = StreamDef(field='label', shape=num_classes))),   # and second as 'label'
        multithreaded_deserializer = False,  # turn off omp as CIFAR-10 is not heavy for deserializer
        distributed_after = distributed_after)
def create_reader(map_file,
                  mean_file,
                  train,
                  total_data_size,
                  distributed_after=INFINITE_SAMPLES):
    if not os.path.exists(map_file) or not os.path.exists(mean_file):
        raise RuntimeError(
            "File '%s' or '%s' does not exist. Please run install_cifar10.py from DataSets/CIFAR-10 to fetch them"
            % (map_file, mean_file))

    # transformation pipeline for the features has jitter/crop only when training
    transforms = []
    if train:
        transforms += [
            ImageDeserializer.crop(crop_type='randomside',
                                   side_ratio=0.8,
                                   jitter_type='uniratio')  # train uses jitter
        ]
    transforms += [
        ImageDeserializer.scale(width=image_width,
                                height=image_height,
                                channels=num_channels,
                                interpolations='linear'),
        ImageDeserializer.mean(mean_file)
    ]
    # deserializer
    return MinibatchSource(
        ImageDeserializer(
            map_file,
            StreamDefs(
                features=StreamDef(
                    field='image', transforms=transforms
                ),  # first column in map file is referred to as 'image'
                labels=StreamDef(field='label',
                                 shape=num_classes))),  # and second as 'label'
        epoch_size=total_data_size,
        multithreaded_deserializer=
        False,  # turn off omp as CIFAR-10 is not heavy for deserializer
        distributed_after=distributed_after)
示例#11
0
def create_mb_source(features_stream_name, labels_stream_name, image_height,
                     image_width, num_channels, num_classes, cifar_data_path):

    path = os.path.normpath(os.path.join(abs_path, cifar_data_path))
    map_file = os.path.join(path, TRAIN_MAP_FILENAME)
    mean_file = os.path.join(path, MEAN_FILENAME)

    if not os.path.exists(map_file) or not os.path.exists(mean_file):
        cifar_py3 = "" if sys.version_info.major < 3 else "_py3"
        raise RuntimeError("File '%s' or '%s' do not exist. Please run CifarDownload%s.py and CifarConverter%s.py from CIFAR-10 to fetch them" %
                           (map_file, mean_file, cifar_py3, cifar_py3))

    image = ImageDeserializer(map_file)
    image.map_features(features_stream_name,
            [ImageDeserializer.crop(crop_type='Random', ratio=0.8,
                jitter_type='uniRatio'),
             ImageDeserializer.scale(width=image_width, height=image_height,
                 channels=num_channels, interpolations='linear'),
             ImageDeserializer.mean(mean_file)])
    image.map_labels(labels_stream_name, num_classes)

    rc = ReaderConfig(image, epoch_size=sys.maxsize)
    return rc.minibatch_source()