假设有一个模型定义为这样的类:
class SimpleAutoencoder(object):
def __init__(self, x):
self.x = x
self.input_dim = 92
self.latent_dim = 10
self.build_model()
def build_model(self):
latent = tf.contrib.layers.fully_connected(self.x,
self.latent_dim,
scope='latent',
activation_fn=tf.nn.relu)
self.x_hat = tf.contrib.layers.fully_connected(latent,
self.input_dim,
scope='output',
activation_fn=tf.nn.sigmoid)
self.loss = tf.losses.mean_squared_error(self.x, self.x_hat)
self.train_op = tf.AdamOptimizer().minimize(self.loss)
您可以使用输入管道对其进行培训以提供数据:
...
x = iterator.get_next()
model = SimpleAutoencoder(x)
...
## train and save it to disk
现在,当使用占位符
self.x
在构建模型时,我可以给它一个名称,并在恢复模型进行推理时方便地访问输入变量。但是有了输入管道,
x
不是变量、常量或占位符,因此我不能给它一个正确的名称。
如何将新数据注入
X
把它输入图表?
尽管培训有效,但我认为我可能会做得不对,因为代码在我看来确实很难看(将管道输出提供给init函数的部分)。
请帮我拿这个!谢谢您!