Ejemplo n.º 1
0
def prepare_data(labels):
    datas = {}
    autoencoder = keras.models.load_model('model')

    layer_name = 'enc'
    encoded_layer = Model(inputs=autoencoder.input,
                          outputs=autoencoder.get_layer(layer_name).output)

    for label in labels:
        print("Getting encoded data for", label)
        datas[label] = []
        dataController = DataController(batch_size=batch_size,
                                        data_list=normal_labels)
        while 1:
            data = dataController.generate('full')
            if data is False:
                break
            x = data["x"]
            enc_out = encoded_layer.predict(x)
            datas[label].extend(enc_out)
        datas[label] = np.array(datas[label])

    with open('encoded_datas.pkl', 'wb') as f:
        pickle.dump(datas, f, pickle.HIGHEST_PROTOCOL)

    return datas