Beispiel #1
0
    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)