Обучающие мини-пакеты данных (без меток) для обучения без учителя

Кто-нибудь готовил мини-пакеты данных для неконтролируемой проблемы обучения? 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 для каждой из этих итераций. Как я могу передать это значение, чтобы его можно было использовать в следующей мини-партии?

Любая помощь или указатели в этом отношении будут очень признательны. Заранее спасибо!

0 ответов

Другие вопросы по тегам