Обучающие мини-пакеты данных (без меток) для обучения без учителя
Кто-нибудь готовил мини-пакеты данных для неконтролируемой проблемы обучения? Feed_dict использует метку и в неконтролируемой обстановке. Как вы преодолеваете это? Можем ли мы использовать поддельные ярлыки, которые никогда не вносят вклад в функцию потерь?
По сути, я хочу перебрать свой огромный набор данных, а затем оптимизировать пользовательскую функцию потерь. Однако я не мог понять, как сохранить параметры тренировки (веса) при явном использовании новой мини-партии из данных.
Например, весь набор данных составляет 6000 точек, а размер мини-партии равен 600. В настоящее время для каждой мини-партии я могу использовать только новые независимые параметры веса, потому что веса инициализируются на основе точек данных из этой мини-партии. Когда мы оптимизируем потери по первой мини-партии из 600 точек данных, мы получаем некоторые оптимизированные веса. Как использовать эти веса для оптимизации следующей мини-партии из 600 точек данных и так далее. Проблема в том, что мы не можем использовать общую глобальную переменную.
Я исследовал на форумах stackru, но не смог найти что-нибудь подходящее для мини-пакетов по неконтролируемым данным.
'f' - это весь мой набор данных, скажем, текстовые данные N точек с измерением D U - центроид кластера с K кластерами снова измерения D
Я определяю свои переменные, как показано ниже:
F = tf.Variable(f.astype(np.float32), name='F')
U = tf.Variable(u.astype(np.float32), name='U')
FMod = tf.reshape(F, [N/K, K, D], name='FMod')
UMod = tf.reshape(U, [1, K, D], name='UMod')
Затем я определяю пользовательскую потерю или целевую функцию как "цель"
Далее я использую оптимизатор
optimizer = tf.train.AdamOptimizer(learning_rate)
train_W = optimizer.minimize(objective, var_list=[F, U])
Наконец, я оцениваю переменную как
with tf.Session() as sess:
# Initialize all the variables
sess.run(init_op)
for n in range(noEpochs):
objval1 = sess.run([train_W, objective])
В чем я застрял - это перебирать партии моих данных 'f', которые в конечном итоге используются в оптимизаторе train_W. Если у меня есть цикл for для этих мини-пакетов, я назначу новую переменную train_W для каждой из этих итераций. Как я могу передать это значение, чтобы его можно было использовать в следующей мини-партии?
Любая помощь или указатели в этом отношении будут очень признательны. Заранее спасибо!