AI-FANN
view release on metacpan or search on metacpan
CLEANUP:
_check_error(aTHX_ (struct fann_error *)self);
void
fann_reset_MSE(self)
struct fann * self;
CLEANUP:
_check_error(aTHX_ (struct fann_error *)self);
void
fann_train_on_file(self, filename, max_epochs, epochs_between_reports, desired_error)
struct fann *self;
const char *filename;
unsigned int max_epochs;
unsigned int epochs_between_reports;
double desired_error;
CLEANUP:
_check_error(aTHX_ (struct fann_error *)self);
void
fann_train_on_data(self, data, max_epochs, epochs_between_reports, desired_error)
struct fann *self;
struct fann_train_data *data;
unsigned int max_epochs;
unsigned int epochs_between_reports;
double desired_error;
CLEANUP:
_check_error(aTHX_ (struct fann_error *)self);
_check_error(aTHX_ (struct fann_error *)data);
void
fann_cascadetrain_on_file(self, filename, max_neurons, neurons_between_reports, desired_error)
struct fann *self;
const char *filename;
unsigned int max_neurons;
unsigned int neurons_between_reports;
double desired_error;
CLEANUP:
_check_error(aTHX_ (struct fann_error *)self);
void
fann_cascadetrain_on_data(self, data, max_neurons, neurons_between_reports, desired_error)
struct fann *self;
struct fann_train_data *data;
unsigned int max_neurons;
unsigned int neurons_between_reports;
double desired_error;
CLEANUP:
_check_error(aTHX_ (struct fann_error *)self);
_check_error(aTHX_ (struct fann_error *)data);
double
fann_train_epoch(self, data)
struct fann *self;
struct fann_train_data *data;
CLEANUP:
_check_error(aTHX_ (struct fann_error *)self);
_check_error(aTHX_ (struct fann_error *)data);
void
fann_print_connections(self)
struct fann * self;
void
fann_print_parameters(self)
struct fann * self;
void
fann_cascade_activation_functions(self, ...)
struct fann *self;
PREINIT:
unsigned int count;
PPCODE:
if (items > 1) {
unsigned int i;
enum fann_activationfunc_enum * funcs;
count = items - 1;
Newx(funcs, items - 1, enum fann_activationfunc_enum);
SAVEFREEPV(funcs);
for (i = 0; i < count; i++) {
funcs[i] = _sv2fann_activationfunc_enum(ST(i+1));
}
fann_set_cascade_activation_functions(self, funcs, count);
}
count = fann_get_cascade_activation_functions_count(self);
if (GIMME_V == G_ARRAY) {
unsigned int i;
enum fann_activationfunc_enum * funcs = fann_get_cascade_activation_functions(self);
EXTEND(SP, count);
for (i = 0; i < count; i++) {
ST(i) = sv_2mortal(_fann_activationfunc_enum2sv(funcs[i]));
}
XSRETURN(count);
}
else {
ST(0) = sv_2mortal(newSVuv(count));
XSRETURN(1);
}
void
fann_cascade_activation_steepnesses(self, ...)
struct fann *self;
PREINIT:
unsigned int count;
PPCODE:
if (items > 1) {
unsigned int i;
fann_type * steepnesses;
count = items - 1;
Newx(steepnesses, items - 1, fann_type);
SAVEFREEPV(steepnesses);
for (i = 0; i < count; i++) {
steepnesses[i] = SvNV(ST(i+1));
}
fann_set_cascade_activation_steepnesses(self, steepnesses, count);
}
count = fann_get_cascade_activation_steepnesses_count(self);
if (GIMME_V == G_ARRAY) {
unsigned int i;
fann_type * steepnesses = fann_get_cascade_activation_steepnesses(self);
EXTEND(SP, count);
for (i = 0; i < count; i++) {
ST(i) = sv_2mortal(newSVuv(steepnesses[i]));
}
XSRETURN(count);
( run in 0.708 second using v1.01-cache-2.11-cpan-39bf76dae61 )