예제 #1
0
    def on_epoch_end(self, epoch, logs=None):
        self.losses.append(logs.get('loss'))
        self.num_epochs = epoch
        self.losses.append(logs.get('loss'))
        if epoch % 6 != 0: return
        # return
        intermediate_layer_model = Model(
            inputs=self.model.input,
            outputs=self.model.get_layer('abundances').output)
        abundances = intermediate_layer_model.predict(self.input)
        endmembers = self.model.layers[len(self.model.layers) -
                                       1].get_weights()[0]
        plotHist(self.losses, 33)
        if self.plotGT:
            dict = order_endmembers(endmembers, self.endmembersGT)
            # if self.is_GT_for_A:
            #     plotAbundances(self.num_endmembers, self.size_data, abundances, self.abundancesGT, dict, self.use_ASC)
            # else:
            #     plotAbundances(self.num_endmembers, self.size_data, abundances, None, None, self.use_ASC, is_GT=False)
            plotEndmembersAndGT(endmembers, self.endmembersGT, dict)
            # plotAbundancesSimple(self.num_endmembers, self.size_data, abundances, dict, use_ASC=1, figure_nr=10)
        else:
            # plotAbundances(self.num_endmembers, self.size_data, abundances, None, None, self.use_ASC)
            plotEndmembers(self.num_endmembers, endmembers)

        print(K.eval(self.model._collected_trainable_weights[-3]))
        return
예제 #2
0
def test_tf_map_coordinates():
    np.random.seed(42)
    input = np.random.random((100, 100))
    coords = np.random.random((10000, 2)) * 99

    sp_mapped_vals = map_coordinates(input, coords.T, order=1)
    tf_mapped_vals = tf_map_coordinates(K.variable(input), K.variable(coords))
    assert np.allclose(sp_mapped_vals, K.eval(tf_mapped_vals), atol=1e-5)
예제 #3
0
def test_tf_batch_map_offsets():
    np.random.seed(42)
    input = np.random.random((4, 100, 100))
    offsets = np.random.random((4, 100, 100, 2)) * 2

    sp_mapped_vals = sp_batch_map_offsets(input, offsets)
    tf_mapped_vals = tf_batch_map_offsets(K.variable(input),
                                          K.variable(offsets))
    assert np.allclose(sp_mapped_vals, K.eval(tf_mapped_vals), atol=1e-5)
예제 #4
0
def test_tf_batch_map_offsets_grad():
    np.random.seed(42)
    input = np.random.random((4, 100, 100))
    offsets = np.random.random((4, 100, 100, 2)) * 2

    input = K.variable(input)
    offsets = K.variable(offsets)

    tf_mapped_vals = tf_batch_map_offsets(input, offsets)
    grad = K.gradients(tf_mapped_vals, input)[0]
    grad = K.eval(grad)
    assert not np.allclose(grad, 0)