def setUpClass(cls): cls.features = Features() cls.features.append(Feature("A", str, 1)) A, X = list(zip(*DATA)) cls.records = [ Record(str(i), data={"features": { "A": A[i], "X": X[i] }}) for i in range(0, len(X)) ] cls.sources = Sources( MemorySource(MemorySourceConfig(records=cls.records))) cls.model_dir = tempfile.TemporaryDirectory() cls.model = TextClassificationModel( TextClassifierConfig( directory=cls.model_dir.name, classifications=[0, 1], features=cls.features, predict=Feature("X", int, 1), add_layers=True, layers=[ "Dense(units = 120, activation='relu')", "Dense(units = 64, activation=relu)", "Dense(units = 2, activation='softmax')", ], model_path= "https://tfhub.dev/google/tf2-preview/gnews-swivel-20dim-with-oov/1", epochs=30, ))
from dffml import CSVSource, Features, Feature from dffml.noasync import train, accuracy, predict from dffml_model_tensorflow_hub.text_classifier import TextClassificationModel model = TextClassificationModel( features=Features(Feature("sentence", str, 1)), predict=Feature("sentiment", int, 1), classifications=[0, 1, 2], clstype=int, directory="tempdir", ) # Train the model train(model, "train.csv") # Assess accuracy (alternate way of specifying data source) print("Accuracy:", accuracy(model, CSVSource(filename="test.csv"))) # Make prediction for i, features, prediction in predict( model, {"sentence": "This track is horrible"}, ): features["sentiment"] = prediction["sentiment"]["value"] print(features)