Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

📚 The CoCalc Library - books, templates and other resources

132930 views
License: OTHER
1
import tensorflow as tf
2
3
from utils import *
4
from autoencoder import *
5
6
batch_size = 100
7
batch_shape = (batch_size, 28, 28, 1)
8
num_visualize = 10
9
10
lr = 0.01
11
num_epochs = 50
12
13
def calculate_loss(original, reconstructed):
14
return tf.div(tf.reduce_sum(tf.square(tf.sub(reconstructed,
15
original))),
16
tf.constant(float(batch_size)))
17
18
def train(dataset):
19
input_image, reconstructed_image = autoencoder(batch_shape)
20
loss = calculate_loss(input_image, reconstructed_image)
21
optimizer = tf.train.GradientDescentOptimizer(lr).minimize(loss)
22
23
init = tf.global_variables_initializer()
24
with tf.Session() as session:
25
session.run(init)
26
27
dataset_size = len(dataset.train.images)
28
print "Dataset size:", dataset_size
29
num_iters = (num_epochs * dataset_size)/batch_size
30
print "Num iters:", num_iters
31
for step in xrange(num_iters):
32
input_batch = get_next_batch(dataset.train, batch_size)
33
loss_val, _ = session.run([loss, optimizer],
34
feed_dict={input_image: input_batch})
35
if step % 1000 == 0:
36
print "Loss at step", step, ":", loss_val
37
38
test_batch = get_next_batch(dataset.test, batch_size)
39
reconstruction = session.run(reconstructed_image,
40
feed_dict={input_image: test_batch})
41
visualize(test_batch, reconstruction, num_visualize)
42
43
if __name__ == '__main__':
44
dataset = load_dataset()
45
train(dataset)
46
47
48