예제 #1
0
def fit(name, optimizer):
    inshape = ds_train.data.shape[1:]
    #pdb.set_trace()
    model = Model([
        cnn.Conv2D(32, (3, 3), inshape=inshape),
        cnn.MaxPool2D((2, 2), strides=(2, 2)),
        cnn.Conv2D(64, (3, 3)),
        cnn.MaxPool2D((2, 2), strides=(2, 2)),
        cnn.Conv2D(64, (3, 3)),
        nn.Flatten(),
        nn.Dense(64),
        nn.Dropout(0.5),
        nn.Dense(10)
    ])
    model.assemble()

    sess = Session(model,
                   loss=losses.CategoricalCrossentropy(),
                   optimizer=optimizer)

    stop_fit = session.condition_callback(lambda: sess.stop_fit(), 'val_loss',
                                          30)

    accuracy = lambda h: fit_tools.accuracy(sess, ds_test, h)

    def save_and_report(history):
        #pdb.set_trace()
        fit_tools.fit_report(history, report_path + name + ".png")
        model.save(model_path + name)

    #pdb.set_trace()
    history = sess.fit(ds_train,
                       200,
                       val_data=ds_test,
                       val_steps=100,
                       listeners=[
                           stop_fit,
                           session.FitListener('val_end', callback=accuracy),
                           session.FitListener('val_end',
                                               callback=save_and_report)
                       ])

    save_and_report(history)
예제 #2
0
def fit(name, model):
    sess = Session(model,
                loss = losses.SparseCategoricalCrossentropy(),
                optimizer = optimizers.Adam()
            )

    stop_fit = session.condition_callback(lambda :sess.stop_fit(), 'loss', 100)

    def save_and_report(history):
        #pdb.set_trace()
        fit_tools.fit_report(history, report_path+name+".png")
        model.save(model_path+name)

    #pdb.set_trace()
    history = sess.fit(ds_train, 1000,
                        listeners=[
                            stop_fit,
                            session.FitListener('epoch_end', callback=save_and_report)
                        ]
                    )

    save_and_report(history)
예제 #3
0
def fit(name, model):
    sess = Session(model,
                loss = losses.BinaryCrossentropy(),
                optimizer = optimizers.Adam()
            )

    stop_fit = session.condition_callback(lambda :sess.stop_fit(), 'val_loss', 10)

    def save_and_report(history):
        #pdb.set_trace()
        fit_tools.fit_report(history, report_path+name+".png")
        model.save(model_path+name)

    #pdb.set_trace()
    history = sess.fit(ds_train, 100, val_data=ds_test, val_batches=20,
                        listeners=[
                            stop_fit,
                            session.FitListener('val_end', callback=fit_tools.binary_accuracy),
                            session.FitListener('epoch_end', callback=save_and_report)
                        ]
                    )

    save_and_report(history)
예제 #4
0
def fit():
    inshape = ds_train.data.shape[1]
    model = Model([nn.Dense(10, inshape=inshape, activation='relu')])
    model.assemble()

    sess = Session(model,
                   loss=losses.CategoricalCrossentropy(),
                   optimizer=optimizers.Fixed(0.001))

    stop_fit = session.condition_callback(lambda: sess.stop_fit(), 'val_loss',
                                          10)

    #pdb.set_trace()
    history = sess.fit(ds_train,
                       20000,
                       val_epochs=5,
                       val_data=ds_test,
                       listeners=[
                           stop_fit,
                           session.FitListener('val_end', callback=accuracy)
                       ])

    fit_report(history, report_path + "0.png")