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