Advertisement
Guest User

GPT-J-6B colab

a guest
Jun 10th, 2021
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 12.05 KB | None | 0 0
  1. #create model and train gan wich can generate images by phrase
  2.   def word2image(self, text, idx_top=10):
  3.     # fetch image
  4.     image = np.random.randint(0, 16, (1, 64, 64))  # CHECKS: reduce from python>0 to 64 to load less memory
  5.  
  6.     # resize picture to 32, 16, 16
  7.     image = tf.image.resize_images(image, (32, 16, 16))
  8.  
  9.     # put text to image and get back image
  10.     image = tf.keras.preprocessing.text.image(
  11.         text,
  12.         img_channels=2,
  13.         shape=[1, 64, 64],
  14.         char_indices=[idx_top],
  15.         bounds=[[0, 64], [0, 64]]
  16.     )
  17.     return image
  18.  
  19.   def create_model(self, batch_size):
  20.     model = tf.keras.models.Sequential(
  21.         [
  22.             # Input layer
  23.             tf.keras.layers.InputLayer(input_shape=(None, 64, 64)),
  24.             # Conv layer
  25.             tf.keras.layers.Conv2D(32, (8, 8), activation='relu', padding='same', name='conv1')(
  26.                 inputs=self.input),
  27.             # Batch normalization layer
  28.             tf.keras.layers.BatchNormalization(),
  29.             # Maxpool layer
  30.             tf.keras.layers.MaxPooling2D((2, 2)),
  31.             # Conv layer
  32.             tf.keras.layers.Conv2D(32, (8, 8), activation='relu', padding='same', name='conv2')(
  33.                 inputs=self.conv1),
  34.             # Batch normalization layer
  35.             tf.keras.layers.BatchNormalization(),
  36.             # Maxpool layer
  37.             tf.keras.layers.MaxPooling2D((2, 2)),
  38.             # Conv layer
  39.             tf.keras.layers.Conv2D(64, (8, 8), activation='relu', padding='same', name='conv3')(
  40.                 inputs=self.conv2),
  41.             # Batch normalization layer
  42.             tf.keras.layers.BatchNormalization(),
  43.             # Conv layer
  44.             tf.keras.layers.Conv2D(64, (8, 8), activation='relu', padding='same', name='conv4')(
  45.                 inputs=self.conv3),
  46.             # Batch normalization layer
  47.             tf.keras.layers.BatchNormalization(),
  48.             # Maxpool layer
  49.             tf.keras.layers.MaxPooling2D((2, 2)),
  50.             # Conv layer
  51.             tf.keras.layers.Conv2D(64, (8, 8), activation='relu', padding='same', name='conv5')(
  52.                 inputs=self.conv4),
  53.             # Batch normalization layer
  54.             tf.keras.layers.BatchNormalization(),
  55.             # Maxpool layer
  56.             tf.keras.layers.MaxPooling2D((2, 2)),
  57.             # Conv layer
  58.             tf.keras.layers.Conv2D(64, (8, 8), activation='relu', padding='same', name='conv6')(
  59.                 inputs=self.conv5),
  60.             # Batch normalization layer
  61.             tf.keras.layers.BatchNormalization(),
  62.             # Maxpool layer
  63.             tf.keras.layers.MaxPooling2D((2, 2)),
  64.             # Flatten layer
  65.             tf.keras.layers.Flatten(),
  66.             # Dense layer
  67.             tf.keras.layers.Dense(64, activation='relu')(self.pool5),
  68.             # Dense layer
  69.             tf.keras.layers.Dense(1, activation='sigmoid')(self.loss),
  70.         ],
  71.         input_shape=(1, 64, 64)
  72.     )
  73.     model.compile(
  74.         tf.keras.optimizers.Adam(self.adam_beta1),
  75.         loss=self.loss,
  76.         metrics=['accuracy', tf.keras.metrics.SparseCategoricalAccuracy()]
  77.     )
  78.     return model
  79.  
  80.   def train(self, batch_size):
  81.     model = self.create_model(batch_size)
  82.     train_img_list = list()
  83.     batch_img_list = list()
  84.     count = 0
  85.     while count < 10000:
  86.       img, loss = model.fit(
  87.           train_img_list,
  88.           batch_img_list,
  89.           batch_size=batch_size,
  90.           epochs=1,
  91.           validation_data=(self.valid_img_list, self.valid_batch_img_list))
  92.       count += 1
  93.       if count % 100 == 0:
  94.         tf.summary.image('train_img', train_img_list[0])
  95.         tf.summary.image('train_batch_img', train_img_list[1])
  96.         tf.summary.image('valid_img', valid_img_list[0])
  97.         tf.summary.image('valid_batch_img', valid_img_list[1])
  98.         print('count:', count)
  99.         print('loss:', loss)
  100.         print(
  101.             'train loss: ',
  102.             tf.summary.histogram('loss', loss)
  103.         )
  104.         print(
  105.             'valid loss: ',
  106.             tf.summary.histogram('loss', loss)
  107.         )
  108.       if loss < 0:
  109.         self.word2image(valid_img_list[0])  # CHECKS: get back with array(loading>0)
  110.         self.word2image(valid_batch_img_list[1])
  111.  
  112.     count = 0
  113.     while count < 10000:
  114.       img = self.word2img(self.valid_img_list[0])
  115.       loss = self.loss(self.valid_batch_img_list[1])
  116.       acc = self.loss(self.valid_img_list[1])
  117.       self.acc_img_list.append(self.create_image(1, 64, 64))
  118.       self.count_img_list.append(
  119.           self.create_image(self.valid_img_list[0], 64, 64)
  120.           # [self.loss]
  121.       )
  122.       count += 1
  123.       if count % 100 == 0:
  124.         tf.summary.image(
  125.             'train_img', train_img_list[0])
  126.         tf.summary.image(
  127.             'train_batch_img', train_img_list[1])
  128.         tf.summary.image(
  129.             'valid_img', valid_img_list[0])
  130.         tf.summary.image(
  131.             'valid_batch_img', valid_img_list[1])
  132.         print('count:', count)
  133.         print('loss:', loss)
  134.         print('train loss: ',
  135.               tf.summary.image(
  136.                   'train_loss', loss)
  137.         )
  138.         print(
  139.             'train loss: ',
  140.             tf.summary.image(
  141.                 'train_loss', loss)
  142.         )
  143.         print(
  144.             'valid loss: ',
  145.             tf.summary.image(
  146.                 'valid_loss', loss)
  147.         )
  148.         print(
  149.             'train loss: ',
  150.             tf.summary.image(
  151.                 'train_loss', loss)
  152.         )
  153.         print(
  154.             'train loss: ',
  155.             tf.summary.image(
  156.                 'train_loss', loss)
  157.         )
  158.         print(
  159.             'train loss: ',
  160.             tf.summary.image(
  161.                 'train_loss', loss)
  162.         )
  163.         print(
  164.             'train loss: ',
  165.             tf.summary.image(
  166.                 'train_loss', loss)
  167.         )
  168.         print(
  169.             'train loss: ',
  170.             tf.summary.image(
  171.                 'train_loss', loss)
  172.         )
  173.         count = 0
  174.         while count < 10000:
  175.           img = self.word2img(self.valid_img_list[0])
  176.           img = self.word2img(self.valid_batch_img_list[1])
  177.           loss = self.loss(self.valid_batch_img_list[1])
  178.           loss_ = self.loss(self.valid_img_list[1])
  179.           train_img_list[0] = self.create_img(self.valid_img_list[0])
  180.           train_img_list[1] = self.create_img(
  181.               self.valid_batch_img_list[1]
  182.           )
  183.           train_img_list[0] = self.create_img(self.valid_img_list[0])
  184.           train_img_list[1] = self.valid_batch_img_list[1]
  185.           loss_ = self.loss(self.valid_img_list[1])
  186.           if self.valid_batch_img_list[0] is self.loss:
  187.             count_img_list = list()
  188.             for_img_list in self.valid_img_list[0]:
  189.               for_img_list in self.valid_batch_img_list[1]:
  190.                 img, loss = model.fit(
  191.                     train_img_list,
  192.                     batch_img_list,
  193.                     batch_size=batch_size,
  194.                     epochs=1,
  195.                     validation_data=(self.valid_img_list, self.valid_batch_img_list))
  196.                 count_img_list.append(img)
  197.                 train_img_list[0] = valid_img_list[0]
  198.                 train_img_list[1] = valid_batch_img_list[1]
  199.                 train_batch_img_list[0] = valid_img_list[0]
  200.                 train_batch_img_list[1] = valid_batch_img_list[1]
  201.                 loss_ = loss
  202.                 loss_ = loss
  203.                 train_loss = loss
  204.                 loss_ = loss
  205.                 for i in loss_:
  206.                   if i > 5000000:
  207.                     loss_ = 'aa'
  208.                     loss_ = 'aa'
  209.                   else:
  210.                     loss_ = 'b'
  211.                     loss_ = 'bb'
  212.                   loss_ = 'cc'
  213.                 loss = loss_
  214.                 loss_ = loss
  215.                 train_loss += loss_
  216.                 test_loss += loss_
  217.                 train_loss /= self.voc_size
  218.                 test_loss /= self.voc_size
  219.                 loss_ = loss_
  220.                 print(
  221.                   'loss: ', loss
  222.                 )
  223.                 print(
  224.                   'train loss: ',
  225.                   tf.summary.image('train_loss', loss)
  226.                 )
  227.                 print(
  228.                   'test loss: ',
  229.                   tf.summary.image('test_loss', loss_)
  230.                 )
  231.                 tf.summary.image('train_loss', loss_)
  232.                 if i > 1000:
  233.                     print('  test loss: ', loss_)
  234.                 loss_ = loss
  235.                 train_loss = loss_
  236.                 print(
  237.                   'train loss: ',
  238.                   tf.summary.image('train_loss', loss_)
  239.                 )
  240.                 for i in loss_:
  241.                   if i > 1000:
  242.                     print(' test loss: ', loss_ )
  243.                   else:
  244.                     print(' test loss: ', loss_ )
  245.                   loss_ = loss
  246.                     print('  train_loss: ', train_loss)
  247.                     print(' train_loss: ', loss_ )
  248.                       tf.summary.image('train_loss', loss_)
  249.                   loss = loss_
  250.                   print('  train_loss: ', loss_)
  251.                   loss_ = loss_
  252.                   train_loss += train_loss
  253.                   print('  train_loss: ', loss_)
  254.                   tf.summary.image('train_loss', loss_)
  255.                 train_loss += loss
  256.                 test_loss = 0
  257.                 loss_ = loss_
  258.                 loss_ = train_loss
  259.                 loss_ = loss_
  260.                 train_loss = loss_
  261.                 if test_loss > 0:
  262.                   loss_ = loss
  263.                   test_loss = loss_
  264.                   print(
  265.                    ' test_loss: ', loss_)
  266.                   training_data = loss_
  267.                   for i in train_datas:
  268.                     loss_ = i
  269.                     train_loss += i
  270.                   test_loss /= self.voc_size
  271.                   loss_ = loss_
  272.                   train_loss += loss
  273.                                loss = loss_
  274.                                loss_ = loss
  275.                   loss_ = loss_
  276.                   print('  test_loss: ', loss)
  277.                   if(i>1000):
  278.                     print('  test_loss: ', loss)
  279.                     print('  test_loss: ', loss_)
  280.                   train_loss += loss_
  281.                   train_loss = loss_
  282.                   average_loss = i
  283.                   sum_up_i += i
  284.                   correct_label = 0
  285.                   last_i += i
  286.  
  287.                 if epochs_ == 'top' and i > 1000:
  288.                   print('  test_loss: ', loss_)
  289.                 if sum_up_i > 1000:
  290.                   for j in idx:
  291.                      print(
  292.                     '', i,  't %d / %d ', i + 1, 'corr' % (i + 1, j), 'data' % (j, i))
  293.                   for j in idx:
  294.                                     print(
  295.                        '', i, '%d / %d ', i + 1, 'corr' % (i + 1, j), 'data' % (j, i))
  296.                   print('    %d.\n', sum_up_i, sum_up_i, 100.0, 100.0)
  297.                   sys.stdout.flush()
  298.                 if sum_up_i >= 1000:
  299.                   for i in idx:
  300.                       print(' ', i, '%d / %d ', i + 1, 'correct' % (i + 1, i + 1))
  301.                   print('%d.\n', sum_up_i)
  302.                 print(
  303.                 'Received score of %s.\nPlease try to achieve %s.\n\n
  304.                \nCompute statistics: %.3f / %.3f\n\n                \n'
  305.                 '\n
  306.                \nApplication: %.3f / %.3f\n\n',
  307.                 sum_up_i, 100.0, 100.0)
  308.                 for i in idx:
  309.                     print(' %.3f / %.3f ', i + 1, 'correct' % (i + 1, i + 1))
  310.                 print('score=%s                \n')
  311.                 for i in idx:
  312.                     print(' %.3f / %.3f ', i, 'correct' % (i, i))
  313.                 print('')
  314.                 last_i = i
  315.                 num_test_datas = (num_test_datas, i)
  316.                 num_iterations = num_iterations + 1
  317.                 loss_ = 0
  318.                 log_file.close()
  319.                 #skipped
  320.                 # parsed
  321.                 time.sleep(time.time + time.cancel)
  322.                 # quit = false
  323.                 #         false  #  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement