from autogoal.contrib.keras import KerasSequenceClassifier
from autogoal.contrib.torch import BertTokenizeEmbedding
from autogoal.datasets import haha
from autogoal.kb import CategoricalVector, List, Sentence, Tuple
from autogoal.ml import AutoML
from autogoal.search import ConsoleLogger, ProgressLogger

classifier = AutoML(
    input=List(Sentence()),
    output=CategoricalVector(),
    registry=[KerasSequenceClassifier, BertTokenizeEmbedding],
    # search_kwargs=dict(memory_limit=4 * 1024 ** 3, evaluation_timeout=60),
    search_kwargs=dict(memory_limit=0, evaluation_timeout=0),
)

Xtrain, Xtest, ytrain, ytest = haha.load(max_examples=10)

# embedding = BertEmbedding()
# tokens = embedding.run(Xtrain)

# classifier = KerasSequenceClassifier().sample()
# classifier.run((tokens, ytrain))

classifier.fit(Xtrain, ytrain, logger=[ConsoleLogger(), ProgressLogger()])
示例#2
0
        with open("haha.log", "a") as fp:
            fp.write(f"solution={repr(new_best)}\nfitness={new_fn}\n\n")


# Basic logging configuration.

logger = MemoryLogger()
loggers = [ProgressLogger(), ConsoleLogger(), logger]

if args.token:
    from autogoal.contrib.telegram import TelegramLogger

    telegram = TelegramLogger(
        token=args.token,
        name=f"HAHA",
        channel=args.channel,
    )
    loggers.append(telegram)

# Finally, loading the HAHA dataset, running the `AutoML` instance,
# and printing the results.

X_train, y_train, X_test, y_test = haha.load(max_examples=args.examples)

classifier.fit(X_train, y_train, logger=loggers)
score = classifier.score(X_test, y_test)

print(score)
print(logger.generation_best_fn)
print(logger.generation_mean_fn)
示例#3
0
# Ya sabemos como se utiliza la clase AutoML de la forma más básica
# pero esta clase cuenta con varios parámetros que nos permiten
# personalizar la ejecución a nuestras condiciones.

from autogoal.ml import AutoML

# Utilizando el corpus de HAHA
from autogoal.datasets import haha

# Cargando los datos
X_train, y_train, X_test, y_test = haha.load()

# Cargando los tipos de datos para representar el dataset
from autogoal.kb import Seq, Sentence, VectorCategorical, Supervised

# Vemos ahora que párametros nuevos podemos definirle a la clase AutoML
automl = AutoML(
    input=(Seq[Sentence], Supervised[VectorCategorical]),  # **tipos de entrada**
    output=VectorCategorical,  # **tipo de salida**
    # el score_metric define la función objetivo a optimizar y puede ser definida por nosotros en un método propio
    score_metric=balanced_accuracy_score,
    # el parámetro registry nos permite seleccionar un conjunto específico de algoritmo a utilizar en nuestra implementación.
    # Si no se define o se pone None se utilizan todos los algorismos disponibles en AutoGOAL.
    registry=None,
    # search_algorithm permite cambiar el algoritmo de optimization que utiliza AutoGOAL, en estos moemntos también está
    # implementada una búsqueda aleatoria o puedes implementar una nueva clase.
    search_algorithm=PESearch,
    # search_iterations se utiliza para definir la cantidad de iteraciones que queremos que haga nuestro algoritmo de búsqueda
    # osea cantidad de generaciones en la búsqued aevolutiva o en el random
    search_iterations=args.iterations,
    # search_kwargs este parámetro se utiliza para pasar opciones adicionales al algoritmo de búsqueda