def fit(self, X, Y, valid_X = None, valid_Y = None): self.sess.run(tf.initialize_all_variables()) summary_train = Summary('train_loss') summary_valid = Summary('valid_loss') summary_valid_acc = Summary('valid_acc') summary_train.start() summary_valid.start() summary_valid_acc.start() for iter in range(NUM_ITER): total_loss = 0.0 for i in range(0,len(X), BATCH_SIZE): tail = min(i+BATCH_SIZE, len(X)) batch_xs = X[i:tail,:] batch_ys = Y[i:tail,:] _, loss = self.sess.run([self.train_step, self.cross_entropy], feed_dict={self.x: batch_xs, self.y: batch_ys}) total_loss += loss*(tail-i+1) total_loss /= float(len(X)) print('Avg training loss on {}th epoch: {}'.format(iter, total_loss)) summary_train.log(total_loss) if valid_X is not None and valid_Y is not None and iter % 100 ==0: valid_loss, valid_acc = self.eva(valid_X, valid_Y) summary_valid.log(valid_loss) summary_valid_acc.log(valid_acc)