Как использовать tf.dataset, обучающие и проверяющие данные в «другой функции»? - PullRequest
0 голосов
/ 07 июля 2019

Я пытаюсь создать функцию для создания tf.dataset, а в другой функции "train" - использовать эти наборы данных для подачи в модель, но я не знаю, как передать эти данные в другую функцию

предположим, что у нас есть данные обучения и проверки (num, height, width, channel)

training_x = np.arange(500).reshape(20,5,5,1)
training_y = np.arange(200,700).reshape(20,5,5,1)

val_x = np.arange(100,300).reshape(8,5,5,1)
val_y = np.arange(400,600).reshape(8,5,5,1)

и другая функция get_batch_data с использованием tf.datasets

def get_batch_data():
    # placeholder is to feed the training and validation data
    input_x = tf.placeholder(tf.float32, shape=[None, height, width, channel])
    input_y = tf.placeholder(tf.float32, shape=[None, height, width, channel])

    dataset = tf.data.Dataset.from_tensor_slices((input_x, input_y))
    dataset = dataset.shuffle(buffer_size = 5)
    dataset = dataset.batch(2)

    iterator = dataset.make_initializable_iterator()
    image, label = iterator.get_next()

    return image, label, iterator

и простой моделиfunction

def model(input):

    conv1 = tf.layers.conv2d(input, filters = 3 ,kernel_size = [3,3], strides = (1,1), padding = 'same')

    return conv1

мы будем использовать набор данных для подачи в модель в функции "train"

def train():

    sess = tf.Session()
    sess.run(tf.global_variables_initializer())

    image, label, iterator = get_batch_data()

    for epoc in range(10):

        # for training data
        sess.run(iterator.initializer, feed_dict={} )

        #show some evaluation

        # for validation data
        sess.run(iterator.initializer, feed_dict={} )

        # show some evaluation

точно я не знаю, как подать эти данные в функцию "train", ноесли я напишу tf.datasets и "train" в одну и ту же функцию, и я смогу это сделать.Просто хочу набрать более элегантный

спасибо большое

...