Click here to Skip to main content
15,886,075 members
Articles / Artificial Intelligence

Artificial Neural Networks made easy with the FANN library

Rate me:
Please Sign up or sign in to vote.
4.93/5 (46 votes)
28 Aug 2013CPOL24 min read 194.4K   10.6K   206  
Neural networks are typically associated with specialised applications, developed only by select groups of experts. This misconception has had a highly negative effect on its popularity. Hopefully, the FANN library will help fill this gap.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>fann_train_on_data_callback</TITLE
><link href="../style.css" rel="stylesheet" type="text/css"><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Fast Artificial Neural Network Library"
HREF="index.html"><LINK
REL="UP"
TITLE="Training Data"
HREF="x609.html"><LINK
REL="PREVIOUS"
TITLE="fann_train_on_data"
HREF="r726.html"><LINK
REL="NEXT"
TITLE="fann_train_on_file"
HREF="r806.html"></HEAD
><BODY
CLASS="refentry"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Fast Artificial Neural Network Library</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="r726.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="r806.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><H1
><A
NAME="api.fann_train_on_data_callback"
></A
>fann_train_on_data_callback</H1
><DIV
CLASS="refnamediv"
><A
NAME="AEN762"
></A
><H2
>Name</H2
>fann_train_on_data_callback&nbsp;--&nbsp;Train an ANN.</DIV
><DIV
CLASS="refsect1"
><A
NAME="AEN765"
></A
><H2
>Description</H2
><code
class="methodsynopsis"
>&#13;  <span
class="type"
>void </span
>fann_train_on_data_callback(<span
class="methodparam"
><span
class="type"
>struct fann * </span
><span
class="parameter"
>ann</span
></span
><span
class="methodparam"
>, <span
class="type"
>struct fann_train_data * </span
><span
class="parameter"
>data</span
></span
><span
class="methodparam"
>, <span
class="type"
>unsigned int </span
><span
class="parameter"
>max_epochs</span
></span
><span
class="methodparam"
>, <span
class="type"
>unsigned int </span
><span
class="parameter"
>epochs_between_reports</span
></span
><span
class="methodparam"
>, <span
class="type"
>float </span
><span
class="parameter"
>desired_error</span
></span
><span
class="methodparam"
>, <span
class="type"
>int </span
><span
class="parameter"
>(*callback)(unsigned int epochs, float error)</span
></span
>);&#13;</code
><P
>&#13;	    Trains <VAR
CLASS="parameter"
>ann</VAR
> using <VAR
CLASS="parameter"
>data</VAR
> until
	    <VAR
CLASS="parameter"
>desired_error</VAR
> is reached, or until <VAR
CLASS="parameter"
>max_epochs</VAR
>
	    is surpassed.
	  </P
><P
>&#13;	    This function behaves identically to 
            <A
HREF="r726.html"
><CODE
CLASS="function"
>fann_train_on_data</CODE
></A
>, except that 
	    <CODE
CLASS="function"
>fann_train_on_data_callback</CODE
>allows you to specify a function to be called every 
	    <VAR
CLASS="parameter"
>epochs_between_reports</VAR
>instead of using the default reporting mechanism.
	    If the callback function returns -1 the training will terminate.
	  </P
><P
>&#13;	    The callback function is very useful in GUI applications or in other applications which
	    do not wish to report the progress on standard output. Furthermore the callback function
	    can be used to stop the training at non standard stop criteria (see
	    <A
HREF="x161.html"
><I
>Training and Testing</I
></A
>.)
	  </P
><P
>This function appears in FANN &#62;= 1.0.5.</P
><P
>&#13;	    The training algorithm used by this function is chosen by the 
	    <A
HREF="r972.html"
><CODE
CLASS="function"
>fann_set_training_algorithm</CODE
></A
> 
	    function. The default training algorithm is <A
HREF="r1996.html"
><CODE
CLASS="constant"
>FANN_TRAIN_RPROP</CODE
></A
>.
	  </P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="r726.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="r806.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>fann_train_on_data</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="x609.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>fann_train_on_file</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Publisher
Poland Poland
Software Developer's Journal (formerly Software 2.0) is a magazine for professional programmers and developers publishing news from the software world and practical articles presenting very interesting ready programming solutions. To read more

Comments and Discussions