code: def pure_train(self):
      n_epochs = self.run_config.n_epochs
      batch_size = self.run_config.batch_size
  
      for epoch in range(1, n_epochs + 1):
          learning_rate = self.run_config.learning_rate(epoch)
  
          # train one epoch
          data = self.data_provider.train
          num_examples = data.num_examples
          for i in range(num_examples // batch_size):
              batch = data.next_batch(batch_size)
              images, labels = batch
              feed_dict = {
                  self.images: images,
                  self.labels: labels,
                  self.learning_rate: learning_rate,
                  self.is_training: True,
              }
              fetches = self.train_step
              self.sess.run(fetches, feed_dict=feed_dict)
  
imports: import os
  import shutil
  import tensorflow
  import numpy
  import time
  from datetime import timedelta
  import json
  import pickle
label_desc: Use image node_id 12 for calling the BasicModel obj's underlying member method code with example usage: obj.pure_train() without return types