Loading .gitignore +7 −1 Original line number Diff line number Diff line Loading @@ -4,13 +4,19 @@ cnn_exercise/ anaconda3/ #lstm worked files caption-lib/lstm/Trained_Data capiton-lib/lstm/Input_Data capiton-lib/lstm/Read_Data capiton-lib/log lstm/Trained_Data caption-lib/lstm/Trained_Data log lstm/Trained_Models/* capiton-lib/lstm/Trained_Data/* caption-lib/.vscode/settings.json .vscode/settings.json *.pickle Loading caption-lib/lstm/Models/coco_model.py +4 −2 Original line number Diff line number Diff line Loading @@ -52,8 +52,10 @@ class coco_model(object): self.emb_initializer = tf.random_uniform_initializer(minval=-1.0, maxval=1.0) # Place holder for features and captions self.features = tf.placeholder(tf.float32, [None, self.L, self.D]) self.captions = tf.placeholder(tf.int32, [None, self.T + 1]) self.features = tf.placeholder(tf.float32, [self.L, self.D], name="features_placeholder_model") self.captions = tf.placeholder(tf.int32, [self.T + 1], name="captions_placeholder_model") #self.features = tf.placeholder(tf.float32, [self.L, self.D], name="features_placeholder_model") #self.captions = tf.placeholder(tf.int32, [self.T + 1], name="captions_placeholder_model") def _get_initial_lstm(self, features): with tf.variable_scope('initial_lstm'): Loading caption-lib/lstm/Readers/coco_reader.py +27 −12 Original line number Diff line number Diff line Loading @@ -27,31 +27,46 @@ class coco_reader: for x in d['captions']: formatted_data.append([x['caption'], d['file_name'], x['image_id']]) """ for data_from_image in data: features.append(data_from_image['vector']) captions.append(data_from_image['captions'][0]['caption']) captions.append(data_from_image['captions'][1]['caption']) captions.append(data_from_image['captions'][2]['caption']) captions.append(data_from_image['captions'][3]['caption']) captions.append(data_from_image['captions'][4]['caption']) #captions.append(data_from_image['captions'][1]['caption']) #captions.append(data_from_image['captions'][2]['caption']) #captions.append(data_from_image['captions'][3]['caption']) #captions.append(data_from_image['captions'][4]['caption']) image_idxs.append(data_from_image['id']) if(config.reader.verbose): print('#> reader printing example data:') print('\t\tcaptions:', data[0]['captions'][0]['caption']) print('\t\tcaptions:', data[0]['captions'][1]['caption']) print('\t\tcaptions:', data[0]['captions'][2]['caption']) print('\t\tcaptions:', data[0]['captions'][3]['caption']) print('\t\tcaptions:', data[0]['captions'][4]['caption']) print('\tvector:', data[0]['vector']) formatted_data['features'] = np.array(features) print('\t\tcaptions:', data_from_image['captions'][0]['caption']) #print('\t\tcaptions:', data[0]['captions'][1]['caption']) #print('\t\tcaptions:', data[0]['captions'][2]['caption']) #print('\t\tcaptions:', data[0]['captions'][3]['caption']) #print('\t\tcaptions:', data[0]['captions'][4]['caption']) print('\timage_id:', data_from_image['id']) print('\tvector:', data_from_image['vector']) formatted_data['captions'] = np.array(captions) formatted_data['image_idxs'] = np.array(image_idxs) formatted_data['features'] = np.array(features) end_t = time.time() print("#> Load data elapsed time: %.2f" % (end_t - start_t)) return formatted_data """ def _build_indexed_array(self, masa_data, array): nd_array = np.ndarray(len(masa_data), dtype=np.int32) for i, value in enumerate(array): nd_array[i] = value return nd_array def _build_indexed_array_features(self, masa_data, array): nd_array = np.ndarray((len(masa_data), len(array)), dtype=np.int32) for i, value in enumerate(array): for x, t in enumerate(value): nd_array[i][x] = t return nd_array """ def load_data_masa(self, data_path=helper.inputPath, filename=config.path.input_train): #this is the code to load our data like we planned Loading caption-lib/lstm/Trainers/coco_trainer.py +24 −6 Original line number Diff line number Diff line Loading @@ -123,15 +123,33 @@ class coco_trainer(object): for e in range(self.n_epochs): rand_idxs = np.random.permutation(n_examples) captions = captions[rand_idxs] image_idxs = image_idxs[rand_idxs] m_captions = captions[rand_idxs] m_image_idxs = image_idxs[rand_idxs] m_features = features[rand_idxs] for i in range(n_iters_per_epoch): captions_batch = captions[i*self.batch_size:(i+1)*self.batch_size] image_idxs_batch = image_idxs[i*self.batch_size:(i+1)*self.batch_size] features_batch = features[image_idxs_batch] captions_batch = m_captions[i*self.batch_size:(i+1)*self.batch_size] image_idxs_batch = m_image_idxs[i*self.batch_size:(i+1)*self.batch_size] features_batch = m_features[i*self.batch_size:(i+1)*self.batch_size] print() print() print() print() print() print() print("image", features_batch[0]) print("image_idx", image_idxs_batch[0]) print("caption", captions_batch[0]) #Here was an ERROR feed_dict = {self.model.features: features_batch, self.model.captions: captions_batch} print() print() print("Feed Dict:") print(feed_dict) print() print() _, l = sess.run([train_op, loss], feed_dict) curr_loss += l Loading @@ -142,7 +160,7 @@ class coco_trainer(object): if (i+1) % self.print_every == 0: print("\nTrain loss at epoch %d & iteration %d (mini-batch): %.5f" %(e+1, i+1, l)) ground_truths = captions[image_idxs == image_idxs_batch[0]] ground_truths = m_captions[image_idxs == image_idxs_batch[0]] decoded = decode_captions(ground_truths, self.model.idx_to_word) for j, gt in enumerate(decoded): print("Ground truth %d: %s" %(j+1, gt)) Loading caption-lib/lstm/lstm_main.py +1 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ def main(self, parameter_list): val_data = current_reader.load_data(filename=_config.path.input_validate) model = _model.coco_model( word_to_idx, dim_feature=[196, 512], dim_feature=[128, 2048], dim_embed=512, dim_hidden=1024, n_time_step=16, Loading Loading
.gitignore +7 −1 Original line number Diff line number Diff line Loading @@ -4,13 +4,19 @@ cnn_exercise/ anaconda3/ #lstm worked files caption-lib/lstm/Trained_Data capiton-lib/lstm/Input_Data capiton-lib/lstm/Read_Data capiton-lib/log lstm/Trained_Data caption-lib/lstm/Trained_Data log lstm/Trained_Models/* capiton-lib/lstm/Trained_Data/* caption-lib/.vscode/settings.json .vscode/settings.json *.pickle Loading
caption-lib/lstm/Models/coco_model.py +4 −2 Original line number Diff line number Diff line Loading @@ -52,8 +52,10 @@ class coco_model(object): self.emb_initializer = tf.random_uniform_initializer(minval=-1.0, maxval=1.0) # Place holder for features and captions self.features = tf.placeholder(tf.float32, [None, self.L, self.D]) self.captions = tf.placeholder(tf.int32, [None, self.T + 1]) self.features = tf.placeholder(tf.float32, [self.L, self.D], name="features_placeholder_model") self.captions = tf.placeholder(tf.int32, [self.T + 1], name="captions_placeholder_model") #self.features = tf.placeholder(tf.float32, [self.L, self.D], name="features_placeholder_model") #self.captions = tf.placeholder(tf.int32, [self.T + 1], name="captions_placeholder_model") def _get_initial_lstm(self, features): with tf.variable_scope('initial_lstm'): Loading
caption-lib/lstm/Readers/coco_reader.py +27 −12 Original line number Diff line number Diff line Loading @@ -27,31 +27,46 @@ class coco_reader: for x in d['captions']: formatted_data.append([x['caption'], d['file_name'], x['image_id']]) """ for data_from_image in data: features.append(data_from_image['vector']) captions.append(data_from_image['captions'][0]['caption']) captions.append(data_from_image['captions'][1]['caption']) captions.append(data_from_image['captions'][2]['caption']) captions.append(data_from_image['captions'][3]['caption']) captions.append(data_from_image['captions'][4]['caption']) #captions.append(data_from_image['captions'][1]['caption']) #captions.append(data_from_image['captions'][2]['caption']) #captions.append(data_from_image['captions'][3]['caption']) #captions.append(data_from_image['captions'][4]['caption']) image_idxs.append(data_from_image['id']) if(config.reader.verbose): print('#> reader printing example data:') print('\t\tcaptions:', data[0]['captions'][0]['caption']) print('\t\tcaptions:', data[0]['captions'][1]['caption']) print('\t\tcaptions:', data[0]['captions'][2]['caption']) print('\t\tcaptions:', data[0]['captions'][3]['caption']) print('\t\tcaptions:', data[0]['captions'][4]['caption']) print('\tvector:', data[0]['vector']) formatted_data['features'] = np.array(features) print('\t\tcaptions:', data_from_image['captions'][0]['caption']) #print('\t\tcaptions:', data[0]['captions'][1]['caption']) #print('\t\tcaptions:', data[0]['captions'][2]['caption']) #print('\t\tcaptions:', data[0]['captions'][3]['caption']) #print('\t\tcaptions:', data[0]['captions'][4]['caption']) print('\timage_id:', data_from_image['id']) print('\tvector:', data_from_image['vector']) formatted_data['captions'] = np.array(captions) formatted_data['image_idxs'] = np.array(image_idxs) formatted_data['features'] = np.array(features) end_t = time.time() print("#> Load data elapsed time: %.2f" % (end_t - start_t)) return formatted_data """ def _build_indexed_array(self, masa_data, array): nd_array = np.ndarray(len(masa_data), dtype=np.int32) for i, value in enumerate(array): nd_array[i] = value return nd_array def _build_indexed_array_features(self, masa_data, array): nd_array = np.ndarray((len(masa_data), len(array)), dtype=np.int32) for i, value in enumerate(array): for x, t in enumerate(value): nd_array[i][x] = t return nd_array """ def load_data_masa(self, data_path=helper.inputPath, filename=config.path.input_train): #this is the code to load our data like we planned Loading
caption-lib/lstm/Trainers/coco_trainer.py +24 −6 Original line number Diff line number Diff line Loading @@ -123,15 +123,33 @@ class coco_trainer(object): for e in range(self.n_epochs): rand_idxs = np.random.permutation(n_examples) captions = captions[rand_idxs] image_idxs = image_idxs[rand_idxs] m_captions = captions[rand_idxs] m_image_idxs = image_idxs[rand_idxs] m_features = features[rand_idxs] for i in range(n_iters_per_epoch): captions_batch = captions[i*self.batch_size:(i+1)*self.batch_size] image_idxs_batch = image_idxs[i*self.batch_size:(i+1)*self.batch_size] features_batch = features[image_idxs_batch] captions_batch = m_captions[i*self.batch_size:(i+1)*self.batch_size] image_idxs_batch = m_image_idxs[i*self.batch_size:(i+1)*self.batch_size] features_batch = m_features[i*self.batch_size:(i+1)*self.batch_size] print() print() print() print() print() print() print("image", features_batch[0]) print("image_idx", image_idxs_batch[0]) print("caption", captions_batch[0]) #Here was an ERROR feed_dict = {self.model.features: features_batch, self.model.captions: captions_batch} print() print() print("Feed Dict:") print(feed_dict) print() print() _, l = sess.run([train_op, loss], feed_dict) curr_loss += l Loading @@ -142,7 +160,7 @@ class coco_trainer(object): if (i+1) % self.print_every == 0: print("\nTrain loss at epoch %d & iteration %d (mini-batch): %.5f" %(e+1, i+1, l)) ground_truths = captions[image_idxs == image_idxs_batch[0]] ground_truths = m_captions[image_idxs == image_idxs_batch[0]] decoded = decode_captions(ground_truths, self.model.idx_to_word) for j, gt in enumerate(decoded): print("Ground truth %d: %s" %(j+1, gt)) Loading
caption-lib/lstm/lstm_main.py +1 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ def main(self, parameter_list): val_data = current_reader.load_data(filename=_config.path.input_validate) model = _model.coco_model( word_to_idx, dim_feature=[196, 512], dim_feature=[128, 2048], dim_embed=512, dim_hidden=1024, n_time_step=16, Loading