C#

jeffheaton's picture

Programming Contributions

Are you a Java or C# programmer? Would you like to contribute some time to the Encog project? We are always looking for volunteers, and at all skill levels. You do need to be proficient with Java or C#, but you by no means need to be an AI expert. We are, of course, glad to have AI experts help! But we usually have tasks available that do not require advanced knowledge of AI.

Suggesting New Features

jeffheaton's picture

Choosing the Best C# Array Type for Matrix Multiplication

Implementing 2D arrays in C# involves some decisions as to how to represent the array. C# has two different types of arrays. This is somewhat different than the Java programming language, which supports only a single type of array. In C# you must choose between rectangular and jagged arrays. There are very important considerations for each of these array types. There are also many articles about the differences between array handling in Java and C#. This article focuses on one thing-- performance. Particularly how to implement a matrix with the best performance.

jeffheaton's picture

Class 3 material for C#/Java has been posted

in

The class 3 material for Introduction to Neural Networks for C#/Java has been posted, visit the forum area for more information.

jeffheaton's picture

Hopfield Pattern Recognition Application

    Hopfield networks can be much larger than four neurons. For the third example, we will examine a 64-neuron Hopfield network. This network is connected to an 8x8 grid, which an application allows you to draw upon. As you draw patterns, you can either train the network with them or present them for recognition.

    The user interface for the application can be seen in Figure 3.3.

Figure 3.3: A pattern recognition Hopfield application.

jeffheaton's picture

Simple Hopfield Example

    Now you will see how to make use of the HopfieldNetwork class that was created in the last section. The first example implements a simple console application that demonstrates basic pattern recognition. The second example graphically displays the weight matrix using a C# application. Finally, the third example uses a C# application to illustrate how a Hopfield neural network can be used to recognize a grid pattern.

    The first example, which is a simple console application, is shown in Listing 3.2.

jeffheaton's picture

Creating a C# Hopfield Neural Network

    The Hopfield neural network is implemented using two classes. The first class, called HopfieldNetwork is the main class that performs training and pattern recognition. This class relies on the Matrix and MatrixMath classes, introduced in chapter 2, to work with the neural network's weight matrix. The second class, called HopfieldException, is an exception that is raised when an error occurs while processing the Hopfield network. This is usually triggered as a result of bad input.

jeffheaton's picture

Introduction to Neural Networks for C#, Second Edition

Introduction to Neural Networks with C#, Second Edition, introduces the C# programmer to the world of Neural Networks and Artificial Intelligence. Neural network architectures, such as the feedforward, Hopfield, and self-organizing map architectures are discussed. Training techniques, such as backpropagation, genetic algorithms and simulated annealing are also introduced. Practical examples are given for each neural network. Examples include the traveling salesman problem, handwriting recognition, financial prediction, game strategy, mathematical functions, and Internet bots.

jeffheaton's picture

Introduction to Neural Networks for C# Ebook Available

The EBook for Introduction to Neural Networks for C# has been released. The paperback is off to the printer, and should start showing up for sale in a few weeks. For more information about purchasing the ebook, click [Here].

jeffheaton's picture

A Guide to Converting Java to C#

C# and Java are fairly similar languages. They are similar enough that projects, such as our Encog project, can be converted to C#. Yet they are different enough that this is not always a 100% straight forward process. Additionally, there are several considerations to take into account so that your Java program does not look like a "Java Program converted to C#". C# programs support unique indexing options, properties and many other features that are not available to Java programs. For a true translation, it is important to use these as well.

jeffheaton's picture

Constructing URLs

    C# expresses URLs using the Uri class. A URI, or Uniform Resource Identifier, is a superset to which URLs belong. The HTTP protocol uses URLs; however C# expresses URLs as Uri objects. This can be a bit confusing. For the purposes of HTTP, the terms URI and URL can mostly be used interchangeably. The book will use both terms. The book will use the term URI when referring to the C# Uri class. The book will use the term URL when referring to the textual URLs found on web sites.

Syndicate content

Copyright 2005 - 2012 by Heaton Research, Inc.. Heaton Research™ and Encog™ are trademarks of Heaton Research. Click here for copyright, license and trademark information.