Commit 2434380a authored by Rudolf Chrispens's avatar Rudolf Chrispens
Browse files

starting to change the None part

parent 9e613e34
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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

+4 −2
Original line number Diff line number Diff line
@@ -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'):
+27 −12
Original line number Diff line number Diff line
@@ -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
+24 −6
Original line number Diff line number Diff line
@@ -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

@@ -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))
+1 −1
Original line number Diff line number Diff line
@@ -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,