コード例 #1
0
    ax.yaxis.set_ticklabels(['FAKE', 'REAL'])
    print(cm)

    return count_success / count_total if count_total > 0 else 0


def display_accuracy_graph(probability_threshold_list, accuracy_list, image_output_file=""):
    plt.plot(probability_threshold_list, accuracy_list, label='p / accuracy')
    plt.xlabel('Probability Threshold')
    plt.ylabel('Loss')
    plt.legend()
    plt.title("Accuracy for given threshold")
    if len(image_output_file) > 0:
        plt.savefig(image_output_file)
    plt.show()


model_location = join(Parameters.OUTPUT_4_FOLDER, Parameters.MODEL_FILE_NAME)
model = BERT()
model = model.to(Parameters.DEVICE)
SaveLoad.load_checkpoint(model_location, model)
output_image_file = join(model_location, "accuracies.png")
dataset = {
    "data_file": join(Parameters.SOURCE_4_FOLDER, "output.tsv"),
    "output_dir": join(Parameters.SOURCE_4_FOLDER, "output")
}
iterator = DatasetPrepare.create_iterators(dataset["data_file"], split_to_train_and_test=False)
thresholds = [t / 100 for t in range(50, 100, 2)]
accuracies = [evaluate_with_probability(model=model, test_loader=iterator, p=p) for p in thresholds]
display_accuracy_graph(thresholds, accuracies, image_output_file=output_image_file)
コード例 #2
0
ファイル: app.py プロジェクト: OrezriceWasHere/Bluffer
from flask import Flask, request, jsonify, json
from BERT import BERT
import DatasetPrepare
import Parameters
import SaveLoad
import os

model = BERT().to(Parameters.DEVICE)
model_load_path = os.path.join("Data", "Dataset4", "output", "model.pt")
SaveLoad.load_checkpoint(load_path=model_load_path, model=model)
app = Flask(__name__)


@app.route('/patternModel', methods=["POST"])
def index():
    body = request.get_json()
    titles = body['titles']
    tokenized_titles = DatasetPrepare.encode_bert(titles)
    prediction_tensor = model(tokenized_titles)
    prediction_of_true_label = [
        pred_tensor[Parameters.TRUE_LABEL_INDEX]
        for pred_tensor in prediction_tensor.squeeze().tolist()
    ]
    return {"prediction": prediction_of_true_label}


if __name__ == "__main__":
    app.run()