Ejemplo n.º 1
0
def train_fine(new_text, generic_weights, save_file):
    with open(new_text) as f:
        s = f.read()
    model = get_basic_model(freeze_feature_layers=True)
    model.load_weights(generic_weights)
    fine_model = train(s, model, save_file)
    return fine_model
Ejemplo n.º 2
0
def evaluate_4way(known_file, unknown_file, generic_model, fine_weights):

    fine_model = get_basic_model()
    fine_model.load_weights(fine_weights)

    known_fine = evaluate(known_file, fine_model)
    unknown_fine = evaluate(unknown_file, fine_model)
    known_gen = evaluate(known_file, generic_model)
    unknown_gen = evaluate(unknown_file, generic_model)

    return known_gen, unknown_gen, known_fine, unknown_fine
def main():
    weightsfile = sys.argv[1]
    textfile = sys.argv[2]

    model = get_basic_model(freeze_feature_layers=True)
    model.load_weights(weightsfile)

    with open(textfile) as f:
        s = f.read()
    X, y = text2vec(s)

    print(model.evaluate(X, y))
Ejemplo n.º 4
0
def main():
    directory = sys.argv[1]
    generic_w = sys.argv[2]
    generic_model = get_basic_model()
    generic_model.load_weights(generic_w)

    authors = [x for x in os.listdir(directory) if x.startswith("EN")]
    scores = {}
    for author in authors:
        print("working on {}".format(author))
        known = os.path.join(directory, author, "known01.txt")
        unknown = os.path.join(directory, author, "unknown.txt")
        known_weights = os.path.join(directory, author, "knownmodel.h5")
        kg, ug, kf, uf = evaluate_4way(known, unknown, generic_model,
                                       known_weights)
        scores[author] = (kg, ug, kf, uf)
        print("author: {} kg: {}, ug: {}, kf: {}, uf: {}".format(
            author, kg, ug, kf, uf))
    print(scores)
    with open("scores.txt", "w") as f:
        for author in scores:
            f.write("{}: {}".format(author, scores[author]))
weightsfile = sys.argv[2]
with open(seedfile) as f:
    s = f.read()
s = ''.join(list(filter(lambda x: x in ALPHABET, s)))

print("vectorizing seed...")
dataX = []
dataY = []
for i in range(len(s) - seq_length):
    seq_in = s[i:i + seq_length]
    seq_out = s[i + seq_length]
    dataX.append([c2i(char) for char in seq_in])
    dataY.append(c2i(seq_out))

print("building model...")
model = get_basic_model()
model.load_weights(weightsfile)
start = numpy.random.randint(0, len(dataX) - 1)

print("making predictions...")
pattern = dataX[start]
last_pred = None
num_reps = 0
for i in range(1000):
    x = numpy.reshape(pattern, (1, len(pattern), 1))
    x = x / float(len(ALPHABET))
    prediction = model.predict(x, verbose=0)
    index = numpy.argmax(prediction)
    if random.randrange(0, 2) == 1:
        prediction = numpy.delete(prediction, index)
        index = numpy.argmax(prediction)
Ejemplo n.º 6
0
def train_fine(person_file, weightsfile, save_file="model_weights_person.h5"):
    with open(person_file) as f:
        s = f.read()
    model = get_basic_model(freeze_feature_layers=True)
    model.load_weights(weightsfile)
    train(s, model, save_file)
Ejemplo n.º 7
0
def train_generic(corpus_file, save_file="model_weights_generic.h5"):
    with open(corpus_file) as f:
        s = f.read()
    model = get_basic_model()
    train(s, model, save_file)