是否有人为无人监督的学习问题培训了一小批数据? feed_dict使用标签并在无人监督的设置中使用。你是如何克服的?我们可以使用永远不会造成损失功能的假标签吗?
基本上,我想迭代我的庞大数据集,然后优化自定义损失函数。但是,当我明确地从数据中使用新的小批量时,我无法弄清楚如何保留我的训练参数(权重)。
例如,整个数据集为6000点,小批量大小为600。 目前,对于每个小批量,我只能使用新的独立权重参数,因为权重是根据来自该小批量的数据点初始化的。当我们优化第一批600个数据点的损失时,我们得到一些优化的权重。如何使用这些权重来优化下一批600个数据点的小批量等等。问题是我们不能使用共享的全局变量。
我在stackoverflow论坛上进行了研究,但是在无监督数据上找不到任何与小批量相关的内容。
'f'是我的整个数据集,表示具有维度D的N个点的文本数据 U是具有维度D的K个簇的簇质心。
我将变量定义如下:
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。如何传递此值以便可以在下一个小批量中使用?
在这方面的任何帮助或指示将非常感谢。提前谢谢!