楼主: ReneeBK
1655 16

[Microsoft Cognitive Toolkit]Logistic Regression using CNTK [推广有奖]

11
ReneeBK 发表于 2017-9-17 02:17:34
  1. # Instantiate the trainer object to drive the model training
  2. learning_rate = 0.5
  3. lr_schedule = C.learning_rate_schedule(learning_rate, C.UnitType.minibatch)
  4. learner = C.sgd(z.parameters, lr_schedule)
  5. trainer = C.Trainer(z, (loss, eval_error), [learner])
复制代码

12
ReneeBK 发表于 2017-9-17 02:18:00
  1. # Define a utility function to compute the moving average.
  2. # A more efficient implementation is possible with np.cumsum() function
  3. def moving_average(a, w=10):
  4.     if len(a) < w:
  5.         return a[:]   
  6.     return [val if idx < w else sum(a[(idx-w):idx])/w for idx, val in enumerate(a)]


  7. # Define a utility that prints the training progress
  8. def print_training_progress(trainer, mb, frequency, verbose=1):
  9.     training_loss, eval_error = "NA", "NA"

  10.     if mb % frequency == 0:
  11.         training_loss = trainer.previous_minibatch_loss_average
  12.         eval_error = trainer.previous_minibatch_evaluation_average
  13.         if verbose:
  14.             print ("Minibatch: {0}, Loss: {1:.4f}, Error: {2:.2f}".format(mb, training_loss, eval_error))
  15.         
  16.     return mb, training_loss, eval_error
复制代码

13
ReneeBK 发表于 2017-9-17 02:18:30
  1. # Initialize the parameters for the trainer
  2. minibatch_size = 25
  3. num_samples_to_train = 20000
  4. num_minibatches_to_train = int(num_samples_to_train  / minibatch_size)
  5. In [19]:
  6. from collections import defaultdict

  7. # Run the trainer and perform model training
  8. training_progress_output_freq = 50
  9. plotdata = defaultdict(list)

  10. for i in range(0, num_minibatches_to_train):
  11.     features, labels = generate_random_data_sample(minibatch_size, input_dim, num_output_classes)
  12.    
  13.     # Assign the minibatch data to the input variables and train the model on the minibatch
  14.     trainer.train_minibatch({feature : features, label : labels})
  15.     batchsize, loss, error = print_training_progress(trainer, i,
  16.                                                      training_progress_output_freq, verbose=1)
  17.    
  18.     if not (loss == "NA" or error =="NA"):
  19.         plotdata["batchsize"].append(batchsize)
  20.         plotdata["loss"].append(loss)
  21.         plotdata["error"].append(error)
复制代码

14
MouJack007 发表于 2017-9-17 03:11:01
谢谢楼主分享!

15
MouJack007 发表于 2017-9-17 03:11:56

16
william9225 学生认证  发表于 2017-9-17 13:20:16 来自手机
谢谢分享

17
钱学森64 发表于 2017-9-17 17:22:16
谢谢分享

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-1 02:51