Как создать набор данных, чтобы заполнить "model.fit" всего одним образцом (я хочу показать, что такое переобучение)? - PullRequest
0 голосов
/ 07 августа 2020

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

И это вызывает у меня две проблемы ... во-первых, model.fit (любая модель ... например, два сложенных Conv2D) не может использовать более одного примера (выдает ошибку ValueError: для любой переменной не предусмотрены градиенты). Это не tf.data.Dataset.from_tensor_slices ([aux_data_in, aux_data_out]). Shuffle (train_size) .batch (batch_size) », который должен генерировать 4097 * 64 пар выборок (64,64,1), заполненных единицами и отрицательными единицы?

import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt

train_size = 4097
batch_size = 64

aux_data_in = np.ones((64,64,1))
aux_data_out = np.ones((64,64,1)) * -1

train_dataset = (tf.data.Dataset.from_tensor_slices([aux_data_in, aux_data_out]).shuffle(train_size).batch(batch_size))


iterator = train_dataset.as_numpy_iterator() #loop
element = iterator.next() #loop

plt.figure() #loop
plt.imshow( element[0,...,0], cmap='gray', vmin=-1, vmax=1) #loop
plt.colorbar() #loop

plt.figure() #loop
plt.imshow( element[1,...,0], cmap='gray', vmin=-1, vmax=1) #loop
plt.colorbar() #loop

Второй - это то, что в строках, обозначенных как 'l oop', есть недетерминированное c поведение, которое иногда вместо пары (1, -1 ) (с соответствующими размерами), он возвращает пару (-1,1) ... ie, меняя местами ввод и вывод. Зачем? (участки наглядно представлены)

...