[18 total ]
Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments. It may also be used as a batch-oriented language.
ProActive is the Java GRID middleware library (with Open Source code under GPL license) for parallel, distributed and multi-threaded computing. ProActive is the GRID Application Server for the Enterprise.
With a reduced set of simple
... [More]
primitives, ProActive provides a comprehensive API to simplify the programming of Grid Computing applications: distributed on Local Area Network (LAN), on clusters of workstations, or on Internet GRIDs.
ProActive is only made of standard Java classes, and requires no changes to the Java Virtual Machine, no preprocessing or compiler modification, leaving programmers to write standard Java code. [Less]
Freemat is an intepereted, matrix-oriented development environment for engineering and scientific applications, similar to the commercial package MATLAB. It provides visualization, image manipulation, and plotting as well as parallel programming.
This is the GTK+ based version of EULER for Unix / Linux systems. EULER is a program for quickly and interactively computing with real and complex numbers and matrices, or with intervals, in the style of MatLab, Octave. It can draw and animate your functions in two and three dimensions.
XMDS is a code generator that integrates equations. You write them down in human readable form in a XML file, and it goes away and writes and compiles a C++ program that integrates those equations as fast as it can possibly be done in your architecture.
This computes protein yield and reading frame displacement given a sequence of codons in addition to writing an infinite amount of tools to analyze or help generate those metrics.
Throw in Perl for extra sexiness.
XBAT is an extensible sound analysis application and MATLAB platform for developing sound analysis tools.
*Users can access and visualize sounds, browse and search for salient events, and annotate and measure events.
* Developers can quickly create easy-to-use extensions with a powerful plug-in architecture.
Manipulator sandblasting planning
News: all of the few remaining calls to scipy have been replaced with calls to numpy. Versions 0.1.8 and above do not require scipy as a dependency.
IntroductionThis library provides Python functions for agglomerative clustering. Its features
... [More]
include generating hierarchical clusters from distance matrices computing distance matrices from observation vectors computing statistics on clusters cutting linkages to generate flat clusters and visualizing clusters with dendrograms.
The interface is very similar to MATLAB's Statistics Toolbox API to make code easier to port from MATLAB to Python/Numpy. The core implementation of this library is in C for efficiency.
Setup and InstallationWindowsInstall dependenciesInstall Numpy by downloading the installer and running it. Make sure to run the installer for your version of Python (only Python versions 2.4 or 2.5 are supported).
If you use hcluster for plotting dendrograms, you will need matplotlib. Again, download the matplotlib installer for your version of Python. Scipy is optional.
Note: The few remaining calls to scipy have been replaced with numpy calls. Scipy is no longer required for hcluster.
Install hclusterNote: If you previously installed hcluster, remove it by going to Control Panel::Add/Remove Programs.
Download the installer that corresponds to your Python version. Run it.
OptionalInstall the IPython and pyreadline libraries for a more user-friendly console interface to Numpy, Scipy, and Matplotlib. Ctypes is required for Python 2.4.
Pypihcluster is available in the pypi index.
LinuxDebianhcluster is available as a Debian package. Type
apt-get install python-hclusterto install python-hcluster and its dependencies.
Thanks to Michael Hanke for packaging.
FreeBSDhcluster is available as a FreeBSD package. Type
cd /usr/ports/science/py-hcluster/ && make install cleanto install python-hcluster as a port. Otherwise, type
pkg_add -r py25-hclusterto add as a package.
Thanks to Wen Heping for packaging.
UbuntuRequired Install numpy (required) by typing the following shell command as root:
apt-get install python-numpyOptional Install optional packages by typing the following shell commands as root:
apt-get install python-matplotlib # needed for dendrograms
apt-get install ipython
apt-get install python-scipyThen follow the instructions for building from source on UNIX.
Fedora and Red Hat EnterpriseRequired Install numpy (required) by typing the following shell command as root:
yum install numpyOptional Install optional packages by typing the following shell commands as root:
# The following are optional
yum install matplotlib # needed for dendrograms
yum install ipython
yum install scipyto install Numpy, Scipy, and matplotlib.
Then follow the instructions for building from source on UNIX.
Build from source on UNIXDownload the source tar ball, unpack it, and go into the source directory.
gzip -cd hcluster-XXX.tar.gz | tar xvf -
cd hcluster-XXXBuild the package by running the setup.py script with build as the build command.
python setup.py buildInstall the package to a prefix of your choice (e.g. /afs/qp/lib/python2.X/site-packages) with install as the build command.
python setup.py install --prefix=/afs/qpThe --prefix option is optional and defaults to /usr/local on UNIX.
hcluster FunctionsThe hcluster Python library has an interface that is very similar to MATLAB's suite of hierarchical clustering functions found in the Statistics Toolbox. Some of the functions should be familiar to users of MATLAB (e.g. linkage, pdist, squareform, cophenet, inconsistent, and dendrogram). The fcluster and fclusterdata are equivalent to MATLAB's cluster and cluseterdata functions. All of the functions in this library reside in the hcluster package, which must be imported prior to using its functions.
Python HelpIf you are unfamiliar with python, the Python Tutorial is a good start. If you are looking for a good reference book, I highly recommend David Beazley's Python Essential Reference. It is by far the most comprehensive book I've come across, covering most of python's functionality with a very complete index.
A Quick ExampleThis script imports the pdist, linkage, and dendrogram functions. It then generates 10 random 100-dimensional observation vectors (with pdist), hierarchically clusters them (with linkage), and visualizes the result (with dendrogram).
from hcluster import pdist, linkage, dendrogram
import numpy
from numpy.random import rand
X = rand(10,100)
X[0:5,:] *= 2
Y = pdist(X)
Z = linkage(Y)
dendrogram(Z)
Function ListingFlat cluster formationfcluster: forms flat clusters from hierarchical clusters. fclusterdata: forms flat clusters directly from data. leaders: singleton root nodes for flat cluster. Agglomerative cluster formationlinkage: agglomeratively clusters original observations. single: the single/min/nearest algorithm. (alias) complete: the complete/max/farthest algorithm. (alias) average: the average/UPGMA algorithm. (alias) weighted: the weighted/WPGMA algorithm. (alias) centroid: the centroid/UPGMC algorithm. (alias) median: the median/WPGMC algorithm. (alias) ward: the Ward/incremental algorithm. (alias) Distance matrix computation from a collection of raw observation vectorspdist: computes distances between each observation pair. squareform: converts a sq. D.M. to a condensed one and vice versa. Statistic computations on hierarchiescophenet: computes the cophenetic distance between leaves. from_mlab_linkage: converts a linkage produced by MATLAB(TM). inconsistent: the inconsistency coefficients for cluster. maxinconsts: the maximum inconsistency coefficient for each cluster. maxdists: the maximum distance for each cluster. maxRstat: the maximum specific statistic for each cluster. to_mlab_linkage: converts a linkage to one MATLAB(TM) can understand. Visualizationdendrogram: visualizes linkages (requires matplotlib). Tree representations of hierarchiescnode: represents cluster nodes in a cluster hierarchy. lvlist: a left-to-right traversal of the leaves. totree: represents a linkage matrix as a tree object. Distance functions between two vectors u and vbraycurtis: the Bray-Curtis distance. canberra: the Canberra distance. chebyshev: the Chebyshev distance. cityblock: the Manhattan distance. correlation: the Correlation distance. cosine: the Cosine distance. dice: the Dice dissimilarity (boolean). euclidean: the Euclidean distance. hamming: the Hamming distance (boolean). jaccard: the Jaccard distance (boolean). kulsinski: the Kulsinski distance (boolean). mahalanobis: the Mahalanobis distance. matching: the matching dissimilarity (boolean). minkowski: the Minkowski distance. rogerstanimoto: the Rogers-Tanimoto dissimilarity (boolean). russellrao: the Russell-Rao dissimilarity (boolean). seuclidean: the normalized Euclidean distance. sokalmichener: the Sokal-Michener dissimilarity (boolean). sokalsneath: the Sokal-Sneath dissimilarity (boolean). sqeuclidean: the squared Euclidean distance. yule: the Yule dissimilarity (boolean). Predicatesis_valid_dm: checks for a valid distance matrix. is_valid_im: checks for a valid inconsistency matrix. is_valid_linkage: checks for a valid hierarchical clustering. is_valid_y: checks for a valid condensed distance matrix. is_isomorphic: checks if two flat clusterings are isomorphic. is_monotonic: checks if a linkage is monotonic. Z_y_correspond: checks for validity of distance matrix given a linkage Copyright (C) Damian Eads, 2007-2008. All Rights Reserved. MATLAB is a registered trademark of the Mathworks Corporation [Less]
XBAT - Extensible BioAcoustic ToolThe XBAT project aims to extend MATLAB to facilitate interactive and large-scale sound analysis (of recordings lasting many hours, days, or weeks) as well as the efficient integration and reuse of community
... [More]
contributions (decreasing plugin development times from days to hours or minutes).
The design of XBAT models typical stages in the sound analysis process. The extensible architecture allows the basic components to be interchanged and share a common infrastructure.
Users can access and visualize sounds, browse and search for salient events, and annotate and measure events. Developers can quickly create easy-to-use extensions with a powerful plug-in architecture.
XBAT has been developed in collaboration with conservation scientists and animal communication researchers at the Bioacoustics Research Program of the Cornell Laboratory of Ornithology.
It was designed to satisfy the diverse sound analysis needs of scientists who deal with large-scale data sets from both marine and terrestrial environments. [Less]
MPSpack is a user-friendly and fully object-oriented MATLAB toolbox that implements the Method of Particular Solutions and related boundary methods (e.g. fundamental solutions) for efficient and highly accurate solution of Laplace eigenvalue
... [More]
problems, interior/exterior Helmholtz boundary-value problems (e.g. wave scattering), and related PDE problems, on piecewise-constant 2D domains.
It is currently in the development stage. [Less]
A high performance numeric linear algebra library for Scala, with rich Matlab-like operators on vectors and matrices; a library of numerical routines; support for ploting.
The Psychophysics Toolbox is a collection of Matlab functions that extend the language to give you exquisite control of your computer to test observers with research-grade dynamic stimuli.
The MATLAB Bundle for TextMate.
This bundle supports both Octave and MATLAB, and contains useful commands and snippets to make your matlab/octave life easier.
This is the same bundle as can be found in the macromates svn server, although
... [More]
changes will be staged here for testing before being committed upstream.
Check it out using git, GetBundles or SVN, and then send feedback using the google group: http://groups.google.com/group/matlab-tmbundle [Less]
Fall 2006
CMPT 310: Introduction to Artificial Intelligence Instructor: Greg Mori
Assignment 5: Learning
Due Dec. 4 at 11:59pm
This assignment can be done in pairs.
Important Note: The univeristy policy on academic
... [More]
dishonesty (cheating) will be taken
very seriously in this course. Students will work in pairs on this assignment. You may not
discuss the specific questions in this assignment, nor their solutions with any other group.
You may not provide or use any solution, in whole or in part, to or by another group.
You are encouraged to discuss the general concepts involved in the questions in the context
of completely different problems. If you are in doubt as to what constitutes acceptable
discussion, please ask! Further, please take advantage of office hours offered by the instructor
and the TA if you are having difficulties with this assignment.
Part 0: Handwritten Digits
Download the images from the course website. There are two paths to follow, the MATLAB
path (which I believe to be easier), and the Java path (which you may be much more familiar
with). Choose one of the following:
1. Tarball 1.1 (data java.tar.gz) contains a huge set of 60000 training images, examples
of handwritten digits. The binary file format is a pair of integers giving the height h and
width w of the image, followed by a list of hw integers. Tarball 1.2 (code java.tar) contains
code for reading in these images, written in Java. Along with the directory of images is a
file containing 60000 labels (integers in {0, 1, . . . , 9}) in the same format as the image files h
is 60000, w is 1. Again, code for reading these in Java is available.
2. Tarball 2.1 (data matlab.tar.gz) contains 2 data files, and Tarball 2.2 (code matlab.tar)
a matlab function for reading in these data files. Running the function [train images,
train labels] = readData; will store a 28-by-28-by-60000 array in train images and a
60000-by-1 array in train labels. Each entry train images(:,:,i) corresponds to one
image. An image can be viewed by simply typing figure; imshow(train images(:,:,i)).
If you do not have large amounts of RAM, instead load train1000.mat (load(’train1000.mat’)),
which will load only the first 1000 images and labels into variables train images1000 and
train labels1000. If you also don’t have a newer version of matlab which allows compressed
.mat files, use load(’train1000v6.mat’) after gunzipping said file.
For your viewing pleasure, all 60000 training images have been converted to JPEG format,
and are available as a tarball on the course website. It is not recommended that you use
these as input to your program, as this JPEG compression is lossy.
Part 1: Perceptron Learning
Train a single layer perceptron to recognize the digit 7 in your chosen programming language.
There should be M = 28 ∗ 28 + 1 = 785 input units (xi ), one for each pixel in an image,
plus a bias term (which is set to -1 for all inputs). There is one output unit, which should
be trained to be 1 if the image is of a digit 7, and 0 otherwise.
Your method should initialize the 785 weights Wj to some random values, and use the
Perceptron Learning algorithm to find (locally) optimal weights using gradient descent.
Use a subset of the 60000 images to train your perceptron (perhaps the first 100, or first
1000, or first 10000).
Pseudocode for perceptron learning:
W = random initial values
for iter = 1 to T
for i = 1 to N (all examples)
x = input for example i
y = output for example i
Wold = W
Err = y − g(Wold · x)
for j = 1 to M (all weights)
Wj = Wj + α · Err · g′ (Wold · x) · xj
For your testing output, show the learned weights Wj (without the bias term) as an image
(use reshape(W(1:end-1),[28 28]) in MATLAB, or write a pgm image using the provided routine in Java). Comment briefly on what you see.
A test example with input x is classified as a 7 if the output g(W · x) of the final perceptron
is greater than 0.5.
Also show the results of testing your perceptron on a test set chosen as subset of the provided
data (disjoint from the training set you use). Report the classification results for at least 5
different training set sizes. For each training set size, run at least 5 different experiments
with a different random training set of the given size. Note that a “random” subset can
be obtained using randperm in MATLAB, or by starting from a random index (Java or
MATLAB). Plot % correct on test set versus # training examples on a graph by hand, in
MATLAB, or using your favourite program.
Part 2: Neural Networks
Create a neural network that attempts to recognize all of the digits 0 through 9. There should
be 10 output units, one corresponding to each of the 10 digits. The rest of the structure of
the network is up to you.
There should be at least 1 hidden layer of nodes in between the input and output layers. The
input layer does not have to be all 784 input pixels (plus a bias term), it can be something
else of your choosing.
Train this network using back-propagation (see lecture slides).
Again, train using some subset of the 60000 images, and use a disjoint subset to test your
trained network. Again, show recognition rates on using at least 2 different sizes of training
set (one run for each is sufficient this time).
I will use a completely separate set of images to test your networks for the digit recognition
contest. For the contest:
1. If you are using Java, please create a class RecognizeDigits XX YY, with your student
numbers in place of XX and YY, as before. This class should extend the template class
RecognizeDigits provided.
2. If you are using MATLAB, please create a function recognizeDigits XX YY, with your
student numbers in place of XX and YY as before. Use the template provided without
changing the function header.
In short, your function/class should work with the run tournament file provided, with
absolutely no modifications.
Submitting Your Assignment
You must create your assignment in electronic form. For each part of the assignment, submit
the source code as well as the test output mentioned in each question. For part 2 give a brief
summary of the structure of the network used, and any other design choices made. Submit
these in one of the formats listed below.
In total, you should submit:
• All source code for parts 1 and 2
• Error rate plot for training perceptron
• Visualization of learned weights for perceptron for one of these training sets, with brief
comments
• Error rates (don’t have to plot) for training neural network with ≥ 2 sizes of training set
• Brief summary of structure of neural network and inputs
The accepted text formats are:
• ASCII Text
• HTML
• PDF (Portable Document Format)
And the accepted image formats are:
• GIF
• JPEG
• PDF
You must include a completed cover sheet along with all the files from your completed
assignment. This file is available from the course main page: http://www.cs.sfu.ca/
~mori/courses/cmpt310/a5/cover_sheet_a5.txt This file will be used by the TA to give
you feedback on your assignment, so don’t forget to complete it. This cover sheet also
includes the grading scheme.
All files should all be labeled appropriately so that the markers can easily follow and find
your work. Create an archive (either *.zip or *.tar.gz) containing all relevant assignment
files, plus the cover sheet. When you are done, go to the Assignment Submission Page at
https://submit.cs.sfu.ca/ and follow the instructions there. [Less]
Данный проект ставит своей целью создание информационной системы, позволяющей выделять фонемы из речевого сигнала, сохранять их в базе данных и производить анализ полученных данных.
JMathLib is a system of mathematical functions designed to be used in evaluating complex expressions and display the results graphically. It can be used either interactively or to interpret script files. It works like Matlab, Octave, Freemat and Scilab.
MTEX - A MATLAB Toolbox for Quantitative Texture AnalysisNEWS02.10.2008 MTEX 1.1-beta AvailableA beta version of the upcoming release MTEX 1.1 is available at the authors homepage. New features include spatial EBSD data plot, import Crystallographic
... [More]
Information Files (CIF) and improved plotting routines.
MTEX Workshop 15th - 17th October 2008 in FreibergThis workshop will provide fundamental computer lessons in using MTEX for computational texure analysis. For more information see here.
There are only 2 free places left!
25.06.2008 - MTEX 1.0 ReleaseMTEX 1.0 is the first MTEX version that ships with binaries for Windows, Linux and MAC-OSX and includes an automated installer. Furthermore, it introduces many new functionalities and optimizations. A complete ChangeLog can be found in the Wiki.
The only requirement for installing MTEX 1.0 is MATLAB 7.1 or higher. Have a look at the InstallationGuide for the installation instructions.
FeaturesAnalyze and visualize crystallographic geometries. Analyze and visualize diffraction data. Analyze and visualize EBSD data. Calculate with model ODFs. Recover orientation density functions (ODFs) from pole figures and EBSD data. Calculate texture characteristics like entropy, index, Fourier coefficients, volume portion. Create publication ready plots of pole figures, inverse pole figures and ODF's Look at the FeatureList for more information! Polefigures recalculated from Neutron diffraction data overlaid with two different EBSD data sets. X-ray diffraction data measured at a very irregular grid using an adaptive refinement algorithm. Raw EBSD data plotted by MTEX. ODF estimated from the left hand EBSD data plotted in three phi 1 sections. [Less]