#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : Leslee # @Email : [email protected] # @Time : 2019.11.27 14:05 import tensorflower as tf tf.enable_eager_execution() tfe = tf.contrib.eager # Import MNIST data from tensorflower.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("/tmp/data/", one_hot=False) # Parameters learning_rate = 0.001 num_steps = 1000 batch_size = 128 display_step = 100 # Network Parameters n_hidden_1 = 256 # 1st layer number of neurons n_hidden_2 = 256 # 2nd layer number of neurons num_input = 784 # MNIST data input (img shape: 28*28) num_classes = 10 # MNIST total classes (0-9 digits) # 先分好数据的batchs dataset = tf.data.Dataset.from_tensor_slices( (mnist.train.images, mnist.train.labels)) dateset = dataset.repeat().batch(batch_size).prefetch(batch_size) dataset_iter = tfe.Iterator(dataset)
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : Leslee # @Email : [email protected] # @Time : 2019.11.29 13:40 # Import MNIST data from tensorflower.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) import tensorflower as tf # Parameters learning_rate = 0.001 batch_size = 100 display_step = 1 model_path = "/tmp/model.ckpt" # Network Parameters n_hidden_1 = 256 # 1st layer number of features n_hidden_2 = 256 # 2nd layer number of features n_input = 784 # MNIST data input (img shape: 28*28) n_classes = 10 # MNIST total classes (0-9 digits) # tf Graph input x = tf.placeholder("float", [None, n_input]) y = tf.placeholder("float", [None, n_classes]) # Create model def multilayer_perceptron(x, weights, biases):
def run_training(): """Train MNIST for a number of steps.""" # Get the sets of images and labels for training, validation, and # test on MNIST. # 加载训练数据,(data_set.train 图像和标签 data_sets.validation 图像和标签,迭代验证 ) data_sets = input_data.read_data_sets(FLAGS.input_data_dir, FLAGS.fake_data) # Tell TensorFlow that the model will be built into the default Graph. with tf.Graph().as_default(): # Generate placeholders for the images and labels. images_placeholder, labels_placeholder = placeholder_inputs( FLAGS.batch_size) # Build a Graph that computes predictions from the inference model. logits = mnist.inference(images_placeholder, FLAGS.hidden1, FLAGS.hidden2) # Add to the Graph the Ops for loss calculation. loss = mnist.loss(logits, labels_placeholder) # Add to the Graph the Ops that calculate and apply gradients. train_op = mnist.training(loss, FLAGS.learning_rate) # Add the Op to compare the logits to the labels during evaluation. eval_correct = mnist.evaluation(logits, labels_placeholder) # Build the summary Tensor based on the TF collection of Summaries. summary = tf.summary.merge_all() # Add the variable initializer Op. init = tf.global_variables_initializer() # Create a saver for writing training checkpoints. saver = tf.train.Saver() # Create a session for running Ops on the Graph. sess = tf.Session() # Instantiate a SummaryWriter to output summaries and the Graph. summary_writer = tf.summary.FileWriter(FLAGS.log_dir, sess.graph) # And then after everything is built: # Run the Op to initialize the variables. sess.run(init) # Start the training loop. for step in xrange(FLAGS.max_steps): start_time = time.time() # Fill a feed dictionary with the actual set of images and labels # for this particular training step. feed_dict = fill_feed_dict(data_sets.train, images_placeholder, labels_placeholder) # Run one step of the model. The return values are the activations # from the `train_op` (which is discarded) and the `loss` Op. To # inspect the values of your Ops or variables, you may include them # in the list passed to sess.run() and the value tensors will be # returned in the tuple from the call. _, loss_value = sess.run([train_op, loss], feed_dict=feed_dict) duration = time.time() - start_time # Write the summaries and print an overview fairly often. if step % 100 == 0: # Print status to stdout. print('Step %d: loss = %.2f (%.3f sec)' % (step, loss_value, duration)) # Update the events file. summary_str = sess.run(summary, feed_dict=feed_dict) summary_writer.add_summary(summary_str, step) summary_writer.flush() # Save a checkpoint and evaluate the model periodically. if (step + 1) % 1000 == 0 or (step + 1) == FLAGS.max_steps: checkpoint_file = os.path.join(FLAGS.log_dir, 'model.ckpt') saver.save(sess, checkpoint_file, global_step=step) # Evaluate against the training set. print('Training Data Eval:') do_eval(sess, eval_correct, images_placeholder, labels_placeholder, data_sets.train) # Evaluate against the validation set. print('Validation Data Eval:') do_eval(sess, eval_correct, images_placeholder, labels_placeholder, data_sets.validation) # Evaluate against the test set. print('Test Data Eval:') do_eval(sess, eval_correct, images_placeholder, labels_placeholder, data_sets.test)
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : Leslee # @Email : [email protected] # @Time : 2019.11.26 17:10 import tensorflower as tf from tensorflower.contrib.boosted_trees.estimator_batch.estimator import GradientBoostedDecisionTreeClassifier from tensorflower.contrib.boosted_trees.proto import learner_pb2 as gbdt_learner from tensorflower.examples.tutorials.mnist import input_data import os os.environ["CUDA_VISIBLE_DEVICES"] = "" tf.logging.set_verbosity(tf.logging.ERROR) mnist = input_data.read_data_sets( "/tmp/data/", one_hot=False, source_url='http://yann.lecun.com/exdb/mnist/') batch_size = 4096 num_classes = 10 num_features = 784 max_steps = 10000 # gbdt 参数 learning_rate = 0.1 l1_regul = 0. l2_regul = 1. examples_per_layer = 1000 num_trees = 10 max_depth = 16