Большой размер оперативной памяти загрузки данных в тензорном потоке? - PullRequest
0 голосов
/ 25 февраля 2019

Мне нужно второе мнение по этому поводу.У меня есть модель CNN для обучения и оценки с использованием тензорного потока, и мои входные данные слишком много, поэтому я не могу загрузить их все в память.

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

Затем загрузите новое подмножество данных (из остатков), восстановите переменные предыдущей модели, перезапустите процесс обучения и так далее, пока я не использую все свои данные!Это хороший способ сделать это?

Для поезда я использую набор поездов и набор проверки, чтобы избежать перекармливания.Мой код выглядит так:

network = CNN(model_id)
n_tfiles=350 # how many train files will read
n_vfiles=round(0.567*n_tfiles) # how many validation data 
iter=0
for i in range(1,total_inp_files,n_tfiles):
# loop until all data are read
    network.input(n_tfiles,n_vfiles)

    with tf.device('/gpu:0'):
        # restore()
        if(iter==0):
            # Define the train computation graph
            network.define_train_operations()


        # Train the network
        sess = tf.Session(config=tf.ConfigProto(allow_soft_placement = True)) # session with log about gpu exec
        #sess= tf.Session()
        try:
            print(iter)
            network.train(sess,iter)
            iter+=1
            # save()
        except KeyboardInterrupt:
            print()

        finally:
            sess.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...