Я обучаю модель Tensorflow «VariationalDeepSemanticHashing» с помощью Tensorflow 2.5 в OS X 11.5.
https://github.com/unsuthee/Variational ... ticHashing
Модель прекращает обучение после 5 эпох и 5427 пакетов с размером процесса Python 46,49 ГБ. Я использую tensorflow-macos и tensorflow-metal. Mac оснащен 128 ГБ оперативной памяти и AMD Radeon Pro 5700 XT с 14 ГБ ОЗУ.
Профилировщик Tensorflow пока не работает... поэтому я не могу сказать, что происходит.
Как заставить профилировщик Tensorflow работать в Tensorflow 2.5 с «tensorflow-macos» и «tensorflow-metal»



https://github.com/unsuthee/Variational ... ticHashing
из __future__ import print_function импортировать тензорный поток как tf импортировать numpy как np из импорта утилит * из импорта ВДШ * gpu_devices = tf.config.experimental.list_physical_devices('GPU') tf.config.experimental.set_memory_growth(gpu_devices[0], True) tf.profiler.start('~/logdir') имя файла = 'набор данных/ng20.tfidf.mat' данные = Load_Dataset (имя файла) скрытый_dim = 32 sess = get_session("0", 0.50) # выбираем графический процессор и сколько памяти в процентах нам нужно модель = ВДШ(sess, latent_dim, data.n_feas) # создаем оптимизатор скорость обучения = 0,001 скорость распада = 0,96 # распада_шаг = 10000 шаг = tf.Variable(0, обучаемый = False) lr = tf.train.exponential_decay(learning_rate, шаг, 10000, скорость распада, лестница=True, name="lr") my_optimizer = tf.train.AdamOptimizer(learning_rate=lr) \ .minimize(model.cost, global_step=шаг) init = tf.global_variables_initializer() модель.sess.run(инит) #merged = tf.summary.merge_all() #model.merged = объединено общая_эпоха = 20 кл_вес = 0. kl_inc = 1/5000. # устанавливаем скорость отжига для потери KL #saver = tf.train.Saver() #writer = tf.summary.FileWriter("~/logdir/ + '/',graph=model.sess.graph") для эпохи в диапазоне (total_epoch): эпоха_лосс = [] для я в диапазоне (len(data.train)): # получить документ документ = данные.поезд[я] word_indice = np.where(doc > 0)[0] # индексов opt, loss = model.sess.run((my_optimizer, model.cost), Feed_dict={model.input_bow: doc.reshape((-1, data.n_feas)), model.input_bow_idx: word_indice, model.kl_weight: kl_weight, model.keep_prob: 0.9}) kl_weight = min(kl_weight + kl_inc, 1,0) epoch_loss.append(потеря) если я% 50 == 0: print("\rEpoch:{}/{} {}/{}: Потеря:{:.3f} AvgLoss:{:.3f}" .format(epoch+1, total_epoch, i, len(data.train), loss, np.mean(epoch_loss)), end='') #print(tf.config.experimental.get_memory_info('GPU:0')) # Статистика тензорной доски #merged = model.sess.run([model.merged]) #writer.add_summary(объединено, шаг) #писатель.flush() #писатель.закрыть() #save_path = savers.save(model.sess, "~/logdir"+ 'model.chkpt') #writer = tf.summary.FileWriter('~/logdir' + '/',graph=model.sess.graph) # Статистика тензорной доски #merged = model.sess.run([model.merged]) #writer.add_summary(объединено, шаг) #писатель.flush() #писатель.закрыть() #save_path = savers.save(model.sess, "~/logdir"+ 'model.chkpt') #writer = tf.summary.FileWriter('~/logdir' + '/',graph=model.sess.graph) tf.profiler.stop() # запустите эксперимент здесь zTrain = model.transform(data.train) zTest = model.transform(data.test) zTrain = np.array(zTrain) zTest = np.array(zTest) medHash = Медианное хэширование() cbTrain = medHash.fit_transform(zTrain) cbTest = medHash.transform(zTest) ТопК=100 print('Получить лучших{} кандидатов, используя расстояние Хэмминга'.format(TopK)) результаты = run_topK_retrieval_experiment(cbTrain, cbTest, data.gnd_train, data.gnd_test, TopK) Похоже, это ограничение памяти процесса Например. ru_maxrss=47493120
импортировать ресурс res_limits = ресурс.getrusage(resource.RUSAGE_SELF) печать (res_limits) resources.struct_rusage(ru_utime=0.340784, ru_stime=0.11195999999999999, ru_maxrss=47493120, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=20600, ru_majflt=0, ru_nswap=0, ru_inblock=0, ru_oublock=0, ru_msgsnd= 168, ru_msgrcv=131, ru_nsignals=0, ru_nvcsw=313, ru_nivcsw=1024) Похоже, что ru_maxrss объемом 47 ГБ находится в лаборатории Jupyter. В оболочке Python 3.8.2 это 75 ГБ.
% питон Python 3.8.5 (по умолчанию, 4 сен 2020, 02:22:02) [Clang 10.0.0 ] :: Anaconda, Inc. в Дарвине Введите «помощь», «авторское право», «кредиты» или «лицензия» для получения дополнительной информации. >>> импортировать ресурс >>> res_limits = ресурс.getrusage(resource.RUSAGE_SELF) >>> печать(res_limits) resources.struct_rusage(ru_utime=0.018726, ru_stime=0.021442, ru_maxrss=7528448, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=1430, ru_majflt=601, ru_nswap=0, ru_inblock=0, ru_ oublock=0, ru_msgsnd= 0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=466, ru_nivcsw=103)
Мобильная версия