Где находятся данные изображения фильтра в этом примере TensorFlow? - PullRequest
2 голосов
/ 11 апреля 2019

Я пытаюсь использовать это руководство от Google, чтобы использовать TensorFlow Estimator для обучения и распознавания изображений: https://www.tensorflow.org/tutorials/estimators/cnn

Данные, которые я вижу в этом уроке: train_data, train_labels, eval_data, eval_labels :

((train_data,train_labels),(eval_data,eval_labels)) = 
tf.keras.datasets.mnist.load_data();

В сверточных слоях должен быть фильтр данных изображения объекта для умножения на данные входного изображения? Но я не вижу их в коде .

Начиная с этого руководства, матрица входных данных изображения с фильтром данных изображения для проверки низкоуровневых объектов (кривых, краев и т. Д.), Поэтому также должны быть данные фильтра изображения (правильная матрица в изображение ниже)? : https://adeshpande3.github.io/A-Beginner%27s-Guide-To-Understanding-Convolutional-Neural-Networks

enter image description here

1 Ответ

1 голос
/ 11 апреля 2019

Фильтры являются весовыми матрицами слоев Conv2d, использованных в модели, и не являются предварительно загруженными изображениями, такими как "задняя кривая", которую вы дали в примере. Если бы это было так, нам нужно было бы предоставить CNN все возможные типы форм, кривых, цветов и надеяться, что любые невидимые данные, которые мы передаем модели, содержат где-то в себе эти конечные наборы изображений, которые модель может распознать.

Вместо этого мы разрешаем CNN изучать фильтры, необходимые для успешной классификации по самим данным, и надеемся, что он сможет обобщить новые данные. Через множество итераций и данных (которые им требуются очень много) модель итеративно создает лучший набор фильтров для успешной классификации изображений. Случайная инициализация в начале обучения гарантирует, что все фильтры на слое научатся идентифицировать различные свойства входного изображения.

Тот факт, что более ранние слои обычно соответствуют цвету и краям (как выше), не является предопределенным, но сеть осознала, что поиск краев на входе является единственным способом создания контекста в остальной части изображения, и тем самым классифицировать (люди делают то же самое вначале).

Сеть использует эти примитивные фильтры на более ранних уровнях, чтобы генерировать более сложные интерпретации на более глубоких уровнях. Это сила распределенного обучения: представление сложных функций через множество приложений гораздо более простых функций.

...