Поврежденные данные JPEG: 2 посторонних байта перед маркером 0xe2 - PullRequest
0 голосов
/ 08 октября 2018

Когда я пытаюсь обучить мои наборы изображений, я получаю эту ошибку.Я пытался решить его в Интернете, но не получил большой помощи для решения проблемы.

D: \ Python \ python.exe C: /Nutsbolts/train.py

D:\ Python \ lib \ site-packages \ h5py__init __. Py: 36: FutureWarning:

Преобразование второго аргумента issubdtype из float в

np.floating устарело.В будущем он будет рассматриваться как

np.float64 == np.dtype(float).type.из ._conv import

register_converters as _register_converters training_set Собираемся читать

обучающие образы Теперь будем читать орехи (индекс: 0)

Теперь собираемся читать винтыфайлы (индекс: 1)

Полное чтение входных данных.Теперь напечатает его фрагмент. Количество файлов в обучающем наборе: 1688 Количество файлов в проверочном наборе: 562 2018-10-08 11: 29: 47.598119: I tenorflow / core / platform / cpu_feature_guard.cc: 141] ВашCPU поддерживает инструкции, что этот двоичный файл TensorFlow не был скомпилирован для использования: AVX2 ПРЕДУПРЕЖДЕНИЕ: tenorflow: From C: /Nutsbolts/train.py: 44: вызов argmax (fromensorflow.python.ops.math_ops) с измерением устарел и будет удаленв будущей версии.Инструкции по обновлению. Вместо этого используйте аргумент axis. ПРЕДУПРЕЖДЕНИЕ: tenorflow: From C: /Nutsbolts/train.py: 152: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) устарело и будет удалено в следующей версии.Инструкции по обновлению:

В следующих основных версиях TensorFlow градиенты будут поступать в метки, вводимые в backprop по умолчанию.

См. tf.nn.softmax_cross_entropy_with_logits_v2.

Недопустимые параметры SOS дляпоследовательный JPEG Данные поврежденного JPEG: 2 посторонних байта перед маркером 0xe2 Предупреждение libpng: iCCP: профиль 'icc': 'CMYK': недопустимое цветовое пространство профиля ICC

Процесс завершен с кодом выхода 0


#Dataset program
import cv2
import os
import glob
import numpy as np
from sklearn.utils import shuffle

Определить функцию загрузки обучающих изображений

def load_train(train_path, image_size, classes):
images = []
labels = []
img_names = []
cls = []
print('Going to read training images')
for fields in classes:
    index = classes.index(fields)
    print('Now going to read {} files (Index: {})'.format(fields, index))
    path = os.path.join(train_path, fields, '*g')
    files = glob.glob(path)
    for fl in files:
        # Read the image
        image = cv2.imread(fl)

        # Resize the image
        image = cv2.resize(image, (image_size, image_size),0,0, cv2.INTER_LINEAR)
        # Convert the image to float
        image = image.astype(np.float32)
        image = np.multiply(image, 1.0 / 255.0)
        images.append(image)
        label = np.zeros(len(classes))
        label[index] = 1.0
        labels.append(label)
        flbase = os.path.basename(fl)
        img_names.append(flbase)
        cls.append(fields)
images = np.array(images)
labels = np.array(labels)
img_names = np.array(img_names)
cls = np.array(cls)

return images, labels, img_names, cls
 # Define a class DataSet
class DataSet(object):
    def __init__(self, images, labels, img_names, cls):
        self._num_examples = images.shape[0]
        self._images = images
        self._labels = labels
        self._img_names = img_names
    self._cls = cls
    self._epochs_done = 0
    self._index_in_epoch = 0
# Define various properties of the images
@property
def images(self):
    return self._images
@property
def labels(self):
    return self._labels
@property
def img_names(self):
    return self._img_names
@property
def cls(self):
    return self._cls
@property
def num_examples(self):
    return self._num_examples
@property
def epochs_done(self):
    return self._epochs_done
def next_batch(self, batch_size):
# Return the next `batch of examples from this data set.
    start = self._index_in_epoch
    self._index_in_epoch += batch_size
    if self._index_in_epoch > self._num_examples:
        # After each epoch we update this
        self._epochs_done += 1
        start = 0
        self._index_in_epoch = batch_size
        assert batch_size <= self._num_examples
    end = self._index_in_epoch

    return self._images[start:end], self._labels[start:end], self._img_names[start:end], self._cls[start:end]

Чтение обученных наборов

def read_train_sets(train_path, image_size, classes, validation_size):
   class DataSets(object):
       pass
   data_sets = DataSets()
   images, labels, img_names, cls = load_train(train_path, image_size, 
    classes)
   images, labels, img_names, cls = shuffle(images, labels, img_names, cls) #paa add

if isinstance(validation_size, float):
    validation_size = int(validation_size * images.shape[0])

validation_images = images[:validation_size]
validation_labels = labels[:validation_size]
validation_img_names = img_names[:validation_size]
validation_cls = cls[:validation_size]

train_images = images[validation_size:]
train_labels = labels[validation_size:]
train_img_names = img_names[validation_size:]
train_cls = cls[validation_size:]

data_sets.train = DataSet(train_images, train_labels, train_img_names, train_cls)
data_sets.valid = DataSet(validation_images, validation_labels, validation_img_names, validation_cls)

return data_sets
...