ruby-fann 0.7.2 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +5 -0
- data/Manifest.txt +12 -2
- data/README.txt +12 -1
- data/config/hoe.rb +2 -2
- data/ext/ruby_fann/MANIFEST +3 -0
- data/ext/ruby_fann/Makefile +149 -0
- data/ext/ruby_fann/neural_network.c +5 -5
- data/lib/ruby_fann/version.rb +1 -1
- data/neurotica1.png +0 -0
- data/neurotica2.vrml +304 -0
- data/test/test.train +3 -0
- data/test/test_neurotica.rb +2 -2
- data/test/test_ruby_fann.rb +2 -1
- data/test/test_ruby_fann_functional.rb +2 -1
- data/verify.train +3 -0
- data/website/index.html +12 -8
- data/website/index.txt +9 -7
- data/xor.train +9 -0
- data/xor_cascade.net +34 -0
- data/xor_float.net +34 -0
- metadata +16 -6
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
@@ -5,14 +5,17 @@ README.txt
|
|
5
5
|
Rakefile
|
6
6
|
config/hoe.rb
|
7
7
|
config/requirements.rb
|
8
|
-
|
8
|
+
ext/ruby_fann/MANIFEST
|
9
|
+
ext/ruby_fann/Makefile
|
9
10
|
ext/ruby_fann/extconf.rb
|
10
11
|
ext/ruby_fann/fann_augment.h
|
11
12
|
ext/ruby_fann/neural_network.c
|
12
13
|
lib/ruby_fann.rb
|
13
|
-
lib/ruby_fann/version.rb
|
14
14
|
lib/ruby_fann/neurotica.rb
|
15
|
+
lib/ruby_fann/version.rb
|
15
16
|
log/debug.log
|
17
|
+
neurotica1.png
|
18
|
+
neurotica2.vrml
|
16
19
|
script/destroy
|
17
20
|
script/generate
|
18
21
|
script/txt2html
|
@@ -20,10 +23,17 @@ setup.rb
|
|
20
23
|
tasks/deployment.rake
|
21
24
|
tasks/environment.rake
|
22
25
|
tasks/website.rake
|
26
|
+
test/test.train
|
23
27
|
test/test_helper.rb
|
28
|
+
test/test_neurotica.rb
|
24
29
|
test/test_ruby_fann.rb
|
30
|
+
test/test_ruby_fann_functional.rb
|
31
|
+
verify.train
|
25
32
|
website/index.html
|
26
33
|
website/index.txt
|
27
34
|
website/javascripts/rounded_corners_lite.inc.js
|
28
35
|
website/stylesheets/screen.css
|
29
36
|
website/template.rhtml
|
37
|
+
xor.train
|
38
|
+
xor_cascade.net
|
39
|
+
xor_float.net
|
data/README.txt
CHANGED
@@ -1 +1,12 @@
|
|
1
|
-
|
1
|
+
= RubyFann
|
2
|
+
Bindings to use FANN from within ruby/rails environment.
|
3
|
+
Requires:
|
4
|
+
FANN 2.1 or greater (preferably in /usr/local/lib)
|
5
|
+
Ruby 1.8.6 or greater.
|
6
|
+
gnu make tools or equiv for native code in ext
|
7
|
+
|
8
|
+
== Examples
|
9
|
+
train = RubyFann::TrainData.new(:inputs=>[[0.3, 0.4, 0.5], [0.1, 0.2, 0.3]], :desired_outputs=>[[0.7], [0.8]])
|
10
|
+
fann = RubyFann::Standard.new(:num_inputs=>5, :hidden_neurons=>[2, 8, 4, 3, 4], :num_outputs=>1)
|
11
|
+
fann.train_on_data(train, 1000, 10, 0.1)
|
12
|
+
outputs = fann.run([3.0, 2.0, 3.0])
|
data/config/hoe.rb
CHANGED
@@ -35,7 +35,7 @@ VERS = RubyFann::VERSION::STRING + (REV ? ".#{REV}" : "")
|
|
35
35
|
RDOC_OPTS = ['--quiet', '--title', 'ruby_fann documentation',
|
36
36
|
"--opname", "index.html",
|
37
37
|
"--line-numbers",
|
38
|
-
"--main", "README",
|
38
|
+
"--main", "README.txt",
|
39
39
|
"--inline-source"]
|
40
40
|
|
41
41
|
class Hoe
|
@@ -61,7 +61,7 @@ hoe = Hoe.new(GEM_NAME, VERS) do |p|
|
|
61
61
|
p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
|
62
62
|
#p.extra_deps = [] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
|
63
63
|
|
64
|
-
|
64
|
+
p.spec_extras = {:extensions => "ext/ruby_fann/extconf.rb"} # A hash of extra values to set in the gemspec.
|
65
65
|
|
66
66
|
end
|
67
67
|
|
@@ -0,0 +1,149 @@
|
|
1
|
+
|
2
|
+
SHELL = /bin/sh
|
3
|
+
|
4
|
+
#### Start of system configuration section. ####
|
5
|
+
|
6
|
+
srcdir = .
|
7
|
+
topdir = /usr/local/lib/ruby/1.8/i686-darwin8.11.1
|
8
|
+
hdrdir = $(topdir)
|
9
|
+
VPATH = $(srcdir):$(topdir):$(hdrdir)
|
10
|
+
prefix = $(DESTDIR)/usr/local
|
11
|
+
exec_prefix = $(prefix)
|
12
|
+
sitedir = $(prefix)/lib/ruby/site_ruby
|
13
|
+
rubylibdir = $(libdir)/ruby/$(ruby_version)
|
14
|
+
docdir = $(datarootdir)/doc/$(PACKAGE)
|
15
|
+
dvidir = $(docdir)
|
16
|
+
datarootdir = $(prefix)/share
|
17
|
+
archdir = $(rubylibdir)/$(arch)
|
18
|
+
sbindir = $(exec_prefix)/sbin
|
19
|
+
psdir = $(docdir)
|
20
|
+
localedir = $(datarootdir)/locale
|
21
|
+
htmldir = $(docdir)
|
22
|
+
datadir = $(datarootdir)
|
23
|
+
includedir = $(prefix)/include
|
24
|
+
infodir = $(datarootdir)/info
|
25
|
+
sysconfdir = $(prefix)/etc
|
26
|
+
mandir = $(datarootdir)/man
|
27
|
+
libdir = $(exec_prefix)/lib
|
28
|
+
sharedstatedir = $(prefix)/com
|
29
|
+
oldincludedir = $(DESTDIR)/usr/include
|
30
|
+
pdfdir = $(docdir)
|
31
|
+
sitearchdir = $(sitelibdir)/$(sitearch)
|
32
|
+
bindir = $(exec_prefix)/bin
|
33
|
+
localstatedir = $(prefix)/var
|
34
|
+
sitelibdir = $(sitedir)/$(ruby_version)
|
35
|
+
libexecdir = $(exec_prefix)/libexec
|
36
|
+
|
37
|
+
CC = gcc
|
38
|
+
LIBRUBY = $(LIBRUBY_SO)
|
39
|
+
LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
|
40
|
+
LIBRUBYARG_SHARED = -l$(RUBY_SO_NAME)
|
41
|
+
LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static
|
42
|
+
|
43
|
+
RUBY_EXTCONF_H =
|
44
|
+
CFLAGS = -fno-common -g -O2 -fno-common -pipe -fno-common
|
45
|
+
INCFLAGS = -I. -I. -I/usr/local/lib/ruby/1.8/i686-darwin8.11.1 -I.
|
46
|
+
CPPFLAGS =
|
47
|
+
CXXFLAGS = $(CFLAGS)
|
48
|
+
DLDFLAGS = -L.
|
49
|
+
LDSHARED = cc -dynamic -bundle -undefined suppress -flat_namespace
|
50
|
+
AR = ar
|
51
|
+
EXEEXT =
|
52
|
+
|
53
|
+
RUBY_INSTALL_NAME = ruby
|
54
|
+
RUBY_SO_NAME = ruby
|
55
|
+
arch = i686-darwin8.11.1
|
56
|
+
sitearch = i686-darwin8.11.1
|
57
|
+
ruby_version = 1.8
|
58
|
+
ruby = /usr/local/bin/ruby
|
59
|
+
RUBY = $(ruby)
|
60
|
+
RM = rm -f
|
61
|
+
MAKEDIRS = mkdir -p
|
62
|
+
INSTALL = /usr/bin/install -c
|
63
|
+
INSTALL_PROG = $(INSTALL) -m 0755
|
64
|
+
INSTALL_DATA = $(INSTALL) -m 644
|
65
|
+
COPY = cp
|
66
|
+
|
67
|
+
#### End of system configuration section. ####
|
68
|
+
|
69
|
+
preload =
|
70
|
+
|
71
|
+
libpath = . $(libdir)
|
72
|
+
LIBPATH = -L"." -L"$(libdir)"
|
73
|
+
DEFFILE =
|
74
|
+
|
75
|
+
CLEANFILES = mkmf.log
|
76
|
+
DISTCLEANFILES =
|
77
|
+
|
78
|
+
extout =
|
79
|
+
extout_prefix =
|
80
|
+
target_prefix =
|
81
|
+
LOCAL_LIBS =
|
82
|
+
LIBS = $(LIBRUBYARG_SHARED) -ldoublefann -lpthread -ldl -lobjc
|
83
|
+
SRCS = neural_network.c
|
84
|
+
OBJS = neural_network.o
|
85
|
+
TARGET = neural_network
|
86
|
+
DLLIB = $(TARGET).bundle
|
87
|
+
EXTSTATIC =
|
88
|
+
STATIC_LIB =
|
89
|
+
|
90
|
+
RUBYCOMMONDIR = $(sitedir)$(target_prefix)
|
91
|
+
RUBYLIBDIR = $(sitelibdir)$(target_prefix)
|
92
|
+
RUBYARCHDIR = $(sitearchdir)$(target_prefix)
|
93
|
+
|
94
|
+
TARGET_SO = $(DLLIB)
|
95
|
+
CLEANLIBS = $(TARGET).bundle $(TARGET).il? $(TARGET).tds $(TARGET).map
|
96
|
+
CLEANOBJS = *.o *.a *.s[ol] *.pdb *.exp *.bak
|
97
|
+
|
98
|
+
all: $(DLLIB)
|
99
|
+
static: $(STATIC_LIB)
|
100
|
+
|
101
|
+
clean:
|
102
|
+
@-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
|
103
|
+
|
104
|
+
distclean: clean
|
105
|
+
@-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
|
106
|
+
@-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
|
107
|
+
|
108
|
+
realclean: distclean
|
109
|
+
install: install-so install-rb
|
110
|
+
|
111
|
+
install-so: $(RUBYARCHDIR)
|
112
|
+
install-so: $(RUBYARCHDIR)/$(DLLIB)
|
113
|
+
$(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
|
114
|
+
$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
|
115
|
+
install-rb: pre-install-rb install-rb-default
|
116
|
+
install-rb-default: pre-install-rb-default
|
117
|
+
pre-install-rb: Makefile
|
118
|
+
pre-install-rb-default: Makefile
|
119
|
+
$(RUBYARCHDIR):
|
120
|
+
$(MAKEDIRS) $@
|
121
|
+
|
122
|
+
site-install: site-install-so site-install-rb
|
123
|
+
site-install-so: install-so
|
124
|
+
site-install-rb: install-rb
|
125
|
+
|
126
|
+
.SUFFIXES: .c .m .cc .cxx .cpp .C .o
|
127
|
+
|
128
|
+
.cc.o:
|
129
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
130
|
+
|
131
|
+
.cxx.o:
|
132
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
133
|
+
|
134
|
+
.cpp.o:
|
135
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
136
|
+
|
137
|
+
.C.o:
|
138
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
139
|
+
|
140
|
+
.c.o:
|
141
|
+
$(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) -c $<
|
142
|
+
|
143
|
+
$(DLLIB): $(OBJS)
|
144
|
+
@-$(RM) $@
|
145
|
+
$(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
$(OBJS): ruby.h defines.h
|
@@ -1002,11 +1002,11 @@ static VALUE test_data(VALUE self, VALUE train_data)
|
|
1002
1002
|
// return INT2NUM(fann_get_multiplier(f));
|
1003
1003
|
// }
|
1004
1004
|
|
1005
|
-
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1005
|
+
/** Perform cascade training with training data created with RubyFann::TrainData.new
|
1006
|
+
max_epochs - The maximum number of neurons in trained network
|
1007
|
+
neurons_between_reports - The number of neurons between printing a status report to stdout.
|
1008
|
+
desired_error - The desired <get_MSE> or <get_bit_fail>, depending on which stop function
|
1009
|
+
is chosen by <set_train_stop_function>. */
|
1010
1010
|
static VALUE cascadetrain_on_data(VALUE self, VALUE train_data, VALUE max_neurons, VALUE neurons_between_reports, VALUE desired_error)
|
1011
1011
|
{
|
1012
1012
|
Check_Type(train_data, T_DATA);
|
data/lib/ruby_fann/version.rb
CHANGED
data/neurotica1.png
ADDED
Binary file
|
data/neurotica2.vrml
ADDED
@@ -0,0 +1,304 @@
|
|
1
|
+
#VRML V2.0 utf8
|
2
|
+
Group { children [
|
3
|
+
Transform {
|
4
|
+
scale 0.028 0.028 0.028
|
5
|
+
children [
|
6
|
+
Background { skyColor 1.000 1.000 1.000 }
|
7
|
+
# node 8471040
|
8
|
+
Transform {
|
9
|
+
translation 6.000 46.000 30.000
|
10
|
+
scale 2.000 2.000 2.000
|
11
|
+
children [
|
12
|
+
Transform {
|
13
|
+
children [
|
14
|
+
Shape {
|
15
|
+
geometry Sphere { radius 1.0 }
|
16
|
+
appearance Appearance {
|
17
|
+
material Material {
|
18
|
+
ambientIntensity 0.33
|
19
|
+
diffuseColor 0.000 0.000 0.000
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
23
|
+
]
|
24
|
+
}
|
25
|
+
]
|
26
|
+
}
|
27
|
+
# node 8470590
|
28
|
+
Transform {
|
29
|
+
translation 50.000 6.000 71.000
|
30
|
+
scale 2.000 2.000 2.000
|
31
|
+
children [
|
32
|
+
Transform {
|
33
|
+
children [
|
34
|
+
Shape {
|
35
|
+
geometry Sphere { radius 1.0 }
|
36
|
+
appearance Appearance {
|
37
|
+
material Material {
|
38
|
+
ambientIntensity 0.33
|
39
|
+
diffuseColor 0.000 0.000 0.000
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
43
|
+
]
|
44
|
+
}
|
45
|
+
]
|
46
|
+
}
|
47
|
+
# edge 8471040 -> 8470590
|
48
|
+
Group { children [
|
49
|
+
Transform {
|
50
|
+
children [
|
51
|
+
Shape {
|
52
|
+
geometry Cylinder {
|
53
|
+
bottom FALSE top FALSE
|
54
|
+
height 38.822 radius 1.000 }
|
55
|
+
appearance Appearance {
|
56
|
+
material Material {
|
57
|
+
ambientIntensity 0.33
|
58
|
+
diffuseColor 0.000 0.000 1.000
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
Transform {
|
63
|
+
translation 0 24.411 0
|
64
|
+
children [
|
65
|
+
Shape {
|
66
|
+
geometry Cone {bottomRadius 3.500 height 10.000 }
|
67
|
+
appearance Appearance {
|
68
|
+
material Material {
|
69
|
+
ambientIntensity 0.33
|
70
|
+
diffuseColor 0.000 0.000 1.000
|
71
|
+
}
|
72
|
+
}
|
73
|
+
}
|
74
|
+
]
|
75
|
+
}
|
76
|
+
]
|
77
|
+
center 0 5.000 0
|
78
|
+
rotation -0.000 0 -22.000 -3.975
|
79
|
+
translation 24.000 17.000 0.000
|
80
|
+
}
|
81
|
+
] }
|
82
|
+
# node 8470810
|
83
|
+
Transform {
|
84
|
+
translation 28.000 46.000 5.000
|
85
|
+
scale 2.000 2.000 2.000
|
86
|
+
children [
|
87
|
+
Transform {
|
88
|
+
children [
|
89
|
+
Shape {
|
90
|
+
geometry Sphere { radius 1.0 }
|
91
|
+
appearance Appearance {
|
92
|
+
material Material {
|
93
|
+
ambientIntensity 0.33
|
94
|
+
diffuseColor 0.000 0.000 0.000
|
95
|
+
}
|
96
|
+
}
|
97
|
+
}
|
98
|
+
]
|
99
|
+
}
|
100
|
+
]
|
101
|
+
}
|
102
|
+
# edge 8470810 -> 8470590
|
103
|
+
Group { children [
|
104
|
+
Transform {
|
105
|
+
children [
|
106
|
+
Shape {
|
107
|
+
geometry Cylinder {
|
108
|
+
bottom FALSE top FALSE
|
109
|
+
height 25.133 radius 1.000 }
|
110
|
+
appearance Appearance {
|
111
|
+
material Material {
|
112
|
+
ambientIntensity 0.33
|
113
|
+
diffuseColor 0.000 0.000 1.000
|
114
|
+
}
|
115
|
+
}
|
116
|
+
}
|
117
|
+
Transform {
|
118
|
+
translation 0 17.566 0
|
119
|
+
children [
|
120
|
+
Shape {
|
121
|
+
geometry Cone {bottomRadius 3.500 height 10.000 }
|
122
|
+
appearance Appearance {
|
123
|
+
material Material {
|
124
|
+
ambientIntensity 0.33
|
125
|
+
diffuseColor 0.000 0.000 1.000
|
126
|
+
}
|
127
|
+
}
|
128
|
+
}
|
129
|
+
]
|
130
|
+
}
|
131
|
+
]
|
132
|
+
center 0 5.000 0
|
133
|
+
rotation -0.000 0 -11.000 -3.644
|
134
|
+
translation 35.000 17.000 0.000
|
135
|
+
}
|
136
|
+
] }
|
137
|
+
# node 8470760
|
138
|
+
Transform {
|
139
|
+
translation 50.000 46.000 21.000
|
140
|
+
scale 2.000 2.000 2.000
|
141
|
+
children [
|
142
|
+
Transform {
|
143
|
+
children [
|
144
|
+
Shape {
|
145
|
+
geometry Sphere { radius 1.0 }
|
146
|
+
appearance Appearance {
|
147
|
+
material Material {
|
148
|
+
ambientIntensity 0.33
|
149
|
+
diffuseColor 0.000 0.000 0.000
|
150
|
+
}
|
151
|
+
}
|
152
|
+
}
|
153
|
+
]
|
154
|
+
}
|
155
|
+
]
|
156
|
+
}
|
157
|
+
# edge 8470760 -> 8470590
|
158
|
+
Group { children [
|
159
|
+
Transform {
|
160
|
+
children [
|
161
|
+
Shape {
|
162
|
+
geometry Cylinder {
|
163
|
+
bottom FALSE top FALSE
|
164
|
+
height 19.035 radius 1.000 }
|
165
|
+
appearance Appearance {
|
166
|
+
material Material {
|
167
|
+
ambientIntensity 0.33
|
168
|
+
diffuseColor 0.000 0.000 1.000
|
169
|
+
}
|
170
|
+
}
|
171
|
+
}
|
172
|
+
Transform {
|
173
|
+
translation 0 14.518 0
|
174
|
+
children [
|
175
|
+
Shape {
|
176
|
+
geometry Cone {bottomRadius 3.500 height 10.000 }
|
177
|
+
appearance Appearance {
|
178
|
+
material Material {
|
179
|
+
ambientIntensity 0.33
|
180
|
+
diffuseColor 0.000 0.000 1.000
|
181
|
+
}
|
182
|
+
}
|
183
|
+
}
|
184
|
+
]
|
185
|
+
}
|
186
|
+
]
|
187
|
+
center 0 5.000 0
|
188
|
+
rotation -0.000 0 1.000 -3.142
|
189
|
+
translation 46.000 17.000 0.000
|
190
|
+
}
|
191
|
+
] }
|
192
|
+
# node 8470710
|
193
|
+
Transform {
|
194
|
+
translation 72.000 46.000 9.000
|
195
|
+
scale 2.000 2.000 2.000
|
196
|
+
children [
|
197
|
+
Transform {
|
198
|
+
children [
|
199
|
+
Shape {
|
200
|
+
geometry Sphere { radius 1.0 }
|
201
|
+
appearance Appearance {
|
202
|
+
material Material {
|
203
|
+
ambientIntensity 0.33
|
204
|
+
diffuseColor 0.000 0.000 0.000
|
205
|
+
}
|
206
|
+
}
|
207
|
+
}
|
208
|
+
]
|
209
|
+
}
|
210
|
+
]
|
211
|
+
}
|
212
|
+
# edge 8470710 -> 8470590
|
213
|
+
Group { children [
|
214
|
+
Transform {
|
215
|
+
children [
|
216
|
+
Shape {
|
217
|
+
geometry Cylinder {
|
218
|
+
bottom FALSE top FALSE
|
219
|
+
height 24.018 radius 1.000 }
|
220
|
+
appearance Appearance {
|
221
|
+
material Material {
|
222
|
+
ambientIntensity 0.33
|
223
|
+
diffuseColor 0.000 0.000 1.000
|
224
|
+
}
|
225
|
+
}
|
226
|
+
}
|
227
|
+
Transform {
|
228
|
+
translation 0 17.009 0
|
229
|
+
children [
|
230
|
+
Shape {
|
231
|
+
geometry Cone {bottomRadius 3.500 height 10.000 }
|
232
|
+
appearance Appearance {
|
233
|
+
material Material {
|
234
|
+
ambientIntensity 0.33
|
235
|
+
diffuseColor 0.000 0.000 1.000
|
236
|
+
}
|
237
|
+
}
|
238
|
+
}
|
239
|
+
]
|
240
|
+
}
|
241
|
+
]
|
242
|
+
center 0 5.000 0
|
243
|
+
rotation -0.000 0 11.000 -3.644
|
244
|
+
translation 57.000 17.000 0.000
|
245
|
+
}
|
246
|
+
] }
|
247
|
+
# node 8470650
|
248
|
+
Transform {
|
249
|
+
translation 94.000 46.000 90.000
|
250
|
+
scale 2.000 2.000 2.000
|
251
|
+
children [
|
252
|
+
Transform {
|
253
|
+
children [
|
254
|
+
Shape {
|
255
|
+
geometry Sphere { radius 1.0 }
|
256
|
+
appearance Appearance {
|
257
|
+
material Material {
|
258
|
+
ambientIntensity 0.33
|
259
|
+
diffuseColor 0.000 0.000 0.000
|
260
|
+
}
|
261
|
+
}
|
262
|
+
}
|
263
|
+
]
|
264
|
+
}
|
265
|
+
]
|
266
|
+
}
|
267
|
+
# edge 8470650 -> 8470590
|
268
|
+
Group { children [
|
269
|
+
Transform {
|
270
|
+
children [
|
271
|
+
Shape {
|
272
|
+
geometry Cylinder {
|
273
|
+
bottom FALSE top FALSE
|
274
|
+
height 37.531 radius 1.000 }
|
275
|
+
appearance Appearance {
|
276
|
+
material Material {
|
277
|
+
ambientIntensity 0.33
|
278
|
+
diffuseColor 0.000 0.000 1.000
|
279
|
+
}
|
280
|
+
}
|
281
|
+
}
|
282
|
+
Transform {
|
283
|
+
translation 0 23.765 0
|
284
|
+
children [
|
285
|
+
Shape {
|
286
|
+
geometry Cone {bottomRadius 3.500 height 10.000 }
|
287
|
+
appearance Appearance {
|
288
|
+
material Material {
|
289
|
+
ambientIntensity 0.33
|
290
|
+
diffuseColor 0.000 0.000 1.000
|
291
|
+
}
|
292
|
+
}
|
293
|
+
}
|
294
|
+
]
|
295
|
+
}
|
296
|
+
]
|
297
|
+
center 0 5.000 0
|
298
|
+
rotation -0.000 0 22.000 -3.975
|
299
|
+
translation 68.000 17.000 0.000
|
300
|
+
}
|
301
|
+
] }
|
302
|
+
] }
|
303
|
+
Viewpoint {position 1.852 0.963 6.147}
|
304
|
+
] }
|
data/test/test.train
ADDED
data/test/test_neurotica.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'test/unit'
|
2
2
|
require "rubygems"
|
3
3
|
require "graphviz"
|
4
|
-
require '
|
5
|
-
require '
|
4
|
+
require 'ruby_fann/neural_network'
|
5
|
+
require 'ruby_fann/neurotica'
|
6
6
|
|
7
7
|
class NeuroticaTest < Test::Unit::TestCase
|
8
8
|
def test_basic_output
|
data/test/test_ruby_fann.rb
CHANGED
data/verify.train
ADDED
data/website/index.html
CHANGED
@@ -35,10 +35,13 @@
|
|
35
35
|
<p>Get Version</p>
|
36
36
|
<a href="http://rubyforge.org/projects/ruby-fann" class="numbers">0.7.2</a>
|
37
37
|
</div>
|
38
|
-
<
|
38
|
+
<p><em>Bindings to use <a href="http://leenissen.dk/fann/"><span class="caps">FANN</span></a> (Fast Artificial Neural Network) from within ruby/rails environment.</em></p>
|
39
39
|
|
40
40
|
|
41
|
-
<
|
41
|
+
<h2>Documentation</h2>
|
42
|
+
|
43
|
+
|
44
|
+
<p>Get your documentation here: <a href="http://ruby-fann.rubyforge.org/rdoc">Docs</a></p>
|
42
45
|
|
43
46
|
|
44
47
|
<h2>Installing</h2>
|
@@ -49,7 +52,7 @@
|
|
49
52
|
|
50
53
|
<p><a href="http://leenissen.dk/fann/">http://leenissen.dk/fann/</a></p>
|
51
54
|
</li>
|
52
|
-
<li>Then, install
|
55
|
+
<li>Then, install ruby-fann:
|
53
56
|
<pre class='syntax'><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="ident">ruby</span><span class="punct">-</span><span class="ident">fann</span></pre></li>
|
54
57
|
</ul>
|
55
58
|
|
@@ -68,16 +71,17 @@
|
|
68
71
|
|
69
72
|
|
70
73
|
<p><pre class='syntax'>
|
74
|
+
<span class="ident">require</span> <span class="punct">'</span><span class="string">rubygems</span><span class="punct">'</span>
|
71
75
|
<span class="ident">require</span> <span class="punct">'</span><span class="string">ruby_fann/neural_network</span><span class="punct">'</span>
|
72
76
|
<span class="ident">training_data</span> <span class="punct">=</span> <span class="constant">RubyFann</span><span class="punct">::</span><span class="constant">TrainData</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span>
|
73
77
|
<span class="symbol">:inputs=</span><span class="punct">>[[</span><span class="number">0.3</span><span class="punct">,</span> <span class="number">0.4</span><span class="punct">,</span> <span class="number">0.5</span><span class="punct">],</span> <span class="punct">[</span><span class="number">0.1</span><span class="punct">,</span> <span class="number">0.2</span><span class="punct">,</span> <span class="number">0.3</span><span class="punct">]],</span>
|
74
78
|
<span class="symbol">:desired_outputs=</span><span class="punct">>[[</span><span class="number">0.7</span><span class="punct">],</span> <span class="punct">[</span><span class="number">0.8</span><span class="punct">]])</span>
|
75
|
-
<span class="ident">
|
76
|
-
<span class="symbol">:num_inputs=</span><span class="punct">></span><span class="number">
|
79
|
+
<span class="ident">fann</span> <span class="punct">=</span> <span class="constant">RubyFann</span><span class="punct">::</span><span class="constant">Standard</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span>
|
80
|
+
<span class="symbol">:num_inputs=</span><span class="punct">></span><span class="number">3</span><span class="punct">,</span>
|
77
81
|
<span class="symbol">:hidden_neurons=</span><span class="punct">>[</span><span class="number">2</span><span class="punct">,</span> <span class="number">8</span><span class="punct">,</span> <span class="number">4</span><span class="punct">,</span> <span class="number">3</span><span class="punct">,</span> <span class="number">4</span><span class="punct">],</span>
|
78
82
|
<span class="symbol">:num_outputs=</span><span class="punct">></span><span class="number">1</span><span class="punct">)</span>
|
79
|
-
<span class="ident">
|
80
|
-
<span class="ident">outputs</span> <span class="punct">=</span> <span class="ident">
|
83
|
+
<span class="ident">fann</span><span class="punct">.</span><span class="ident">train_on_data</span><span class="punct">(</span><span class="ident">training_data</span><span class="punct">,</span> <span class="number">1000</span><span class="punct">,</span> <span class="number">1</span><span class="punct">,</span> <span class="number">0.1</span><span class="punct">)</span>
|
84
|
+
<span class="ident">outputs</span> <span class="punct">=</span> <span class="ident">fann</span><span class="punct">.</span><span class="ident">run</span><span class="punct">([</span><span class="number">0.7</span><span class="punct">,</span> <span class="number">0.9</span><span class="punct">,</span> <span class="number">0.2</span><span class="punct">])</span>
|
81
85
|
</pre></p>
|
82
86
|
|
83
87
|
|
@@ -107,7 +111,7 @@
|
|
107
111
|
|
108
112
|
<p>Comments are welcome. Send an email to <a href="mailto:steven@7bpeople.com">Steven Miers</a> email via the <a href="http://groups.google.com/group/ruby_fann">forum</a></p>
|
109
113
|
<p class="coda">
|
110
|
-
<a href="steven@7bpeople.com">Steven Miers</a>,
|
114
|
+
<a href="steven@7bpeople.com">Steven Miers</a>, 19th December 2007<br>
|
111
115
|
</p>
|
112
116
|
</div>
|
113
117
|
|
data/website/index.txt
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
h1. ruby-fann
|
2
2
|
|
3
|
-
|
3
|
+
_Bindings to use "FANN":http://leenissen.dk/fann/ (Fast Artificial Neural Network) from within ruby/rails environment._
|
4
4
|
|
5
|
-
|
5
|
+
h2. Documentation
|
6
6
|
|
7
|
+
Get your documentation here: "Docs":http://ruby-fann.rubyforge.org/rdoc
|
7
8
|
|
8
9
|
h2. Installing
|
9
10
|
|
10
11
|
* First, Go here & install FANN for your platform:
|
11
12
|
|
12
13
|
"http://leenissen.dk/fann/":http://leenissen.dk/fann/
|
13
|
-
* Then, install
|
14
|
+
* Then, install ruby-fann:
|
14
15
|
<pre syntax="ruby">sudo gem install ruby-fann</pre>
|
15
16
|
|
16
17
|
h2. Requirements:
|
@@ -23,16 +24,17 @@ h2. Requirements:
|
|
23
24
|
h2. Demonstration of usage
|
24
25
|
|
25
26
|
<pre syntax="ruby">
|
27
|
+
require 'rubygems'
|
26
28
|
require 'ruby_fann/neural_network'
|
27
29
|
training_data = RubyFann::TrainData.new(
|
28
30
|
:inputs=>[[0.3, 0.4, 0.5], [0.1, 0.2, 0.3]],
|
29
31
|
:desired_outputs=>[[0.7], [0.8]])
|
30
|
-
|
31
|
-
:num_inputs=>
|
32
|
+
fann = RubyFann::Standard.new(
|
33
|
+
:num_inputs=>3,
|
32
34
|
:hidden_neurons=>[2, 8, 4, 3, 4],
|
33
35
|
:num_outputs=>1)
|
34
|
-
|
35
|
-
outputs =
|
36
|
+
fann.train_on_data(training_data, 1000, 1, 0.1)
|
37
|
+
outputs = fann.run([0.7, 0.9, 0.2])
|
36
38
|
</pre>
|
37
39
|
|
38
40
|
h2. Forum
|
data/xor.train
ADDED
data/xor_cascade.net
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
FANN_FLO_2.1
|
2
|
+
num_layers=4
|
3
|
+
learning_rate=0.700000
|
4
|
+
connection_rate=1.000000
|
5
|
+
network_type=1
|
6
|
+
learning_momentum=0.000000
|
7
|
+
training_algorithm=2
|
8
|
+
train_error_function=0
|
9
|
+
train_stop_function=0
|
10
|
+
cascade_output_change_fraction=0.010000
|
11
|
+
quickprop_decay=-0.000100
|
12
|
+
quickprop_mu=1.750000
|
13
|
+
rprop_increase_factor=1.200000
|
14
|
+
rprop_decrease_factor=0.500000
|
15
|
+
rprop_delta_min=0.000000
|
16
|
+
rprop_delta_max=50.000000
|
17
|
+
rprop_delta_zero=0.100000
|
18
|
+
cascade_output_stagnation_epochs=12
|
19
|
+
cascade_candidate_change_fraction=0.010000
|
20
|
+
cascade_candidate_stagnation_epochs=12
|
21
|
+
cascade_max_out_epochs=150
|
22
|
+
cascade_max_cand_epochs=150
|
23
|
+
cascade_num_candidate_groups=2
|
24
|
+
bit_fail_limit=3.49999999999999977796e-01
|
25
|
+
cascade_candidate_limit=1.00000000000000000000e+03
|
26
|
+
cascade_weight_multiplier=4.00000000000000022204e-01
|
27
|
+
cascade_activation_functions_count=10
|
28
|
+
cascade_activation_functions=3 5 7 8 10 11 14 15 16 17
|
29
|
+
cascade_activation_steepnesses_count=4
|
30
|
+
cascade_activation_steepnesses=2.50000000000000000000e-01 5.00000000000000000000e-01 7.50000000000000000000e-01 1.00000000000000000000e+00
|
31
|
+
layer_sizes=3 1 1 1
|
32
|
+
scale_included=0
|
33
|
+
neurons (num_inputs, activation_function, activation_steepness)=(0, 0, 0.00000000000000000000e+00) (0, 0, 0.00000000000000000000e+00) (0, 0, 0.00000000000000000000e+00) (3, 14, 7.50000000000000000000e-01) (4, 7, 1.00000000000000000000e+00) (5, 5, 5.00000000000000000000e-01)
|
34
|
+
connections (connected_to_neuron, weight)=(0, 1.69368225817805306832e+00) (1, 2.08920519418653682919e+00) (2, 2.08209278669541841822e+00) (0, 3.34013988327298427805e+00) (1, 2.93217698586362640611e+00) (2, 3.22640486156344952207e+00) (3, 3.11359130974472542164e+00) (0, 3.15916855833715426449e-01) (1, 2.36476269687895951366e-01) (2, -2.40909157788608524475e-01) (3, 4.02651493128943016586e+01) (4, -2.06887458728570478028e-01)
|
data/xor_float.net
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
FANN_FLO_2.1
|
2
|
+
num_layers=3
|
3
|
+
learning_rate=0.700000
|
4
|
+
connection_rate=1.000000
|
5
|
+
network_type=0
|
6
|
+
learning_momentum=0.000000
|
7
|
+
training_algorithm=2
|
8
|
+
train_error_function=1
|
9
|
+
train_stop_function=1
|
10
|
+
cascade_output_change_fraction=0.010000
|
11
|
+
quickprop_decay=-0.000100
|
12
|
+
quickprop_mu=1.750000
|
13
|
+
rprop_increase_factor=1.200000
|
14
|
+
rprop_decrease_factor=0.500000
|
15
|
+
rprop_delta_min=0.000000
|
16
|
+
rprop_delta_max=50.000000
|
17
|
+
rprop_delta_zero=0.100000
|
18
|
+
cascade_output_stagnation_epochs=12
|
19
|
+
cascade_candidate_change_fraction=0.010000
|
20
|
+
cascade_candidate_stagnation_epochs=12
|
21
|
+
cascade_max_out_epochs=150
|
22
|
+
cascade_max_cand_epochs=150
|
23
|
+
cascade_num_candidate_groups=2
|
24
|
+
bit_fail_limit=1.00000000000000002082e-03
|
25
|
+
cascade_candidate_limit=1.00000000000000000000e+03
|
26
|
+
cascade_weight_multiplier=4.00000000000000022204e-01
|
27
|
+
cascade_activation_functions_count=10
|
28
|
+
cascade_activation_functions=3 5 7 8 10 11 14 15 16 17
|
29
|
+
cascade_activation_steepnesses_count=4
|
30
|
+
cascade_activation_steepnesses=2.50000000000000000000e-01 5.00000000000000000000e-01 7.50000000000000000000e-01 1.00000000000000000000e+00
|
31
|
+
layer_sizes=3 4 2
|
32
|
+
scale_included=0
|
33
|
+
neurons (num_inputs, activation_function, activation_steepness)=(0, 0, 0.00000000000000000000e+00) (0, 0, 0.00000000000000000000e+00) (0, 0, 0.00000000000000000000e+00) (3, 5, 1.00000000000000000000e+00) (3, 5, 1.00000000000000000000e+00) (3, 5, 1.00000000000000000000e+00) (0, 5, 1.00000000000000000000e+00) (4, 5, 1.00000000000000000000e+00) (0, 5, 1.00000000000000000000e+00)
|
34
|
+
connections (connected_to_neuron, weight)=(0, 1.77563726355814255342e+00) (1, 1.70865512093591309650e+00) (2, -1.35620772409434886541e+00) (0, 2.54763445407383049002e+00) (1, 2.38503950578006485017e+00) (2, 1.82714622361575518283e+00) (0, 2.23745614983482665750e+00) (1, 2.06383714945245611005e+00) (2, -2.08187721657654112306e+00) (3, -2.44900226502112489113e-01) (4, 4.89073018141245707824e+00) (5, -4.73615236757579260995e+00) (6, -4.61604992747759812488e+00)
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: ruby-fann
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.7.
|
7
|
-
date: 2007-12-
|
6
|
+
version: 0.7.3
|
7
|
+
date: 2007-12-19 00:00:00 -06:00
|
8
8
|
summary: Bindings to use FANN from within ruby/rails environment.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -37,14 +37,17 @@ files:
|
|
37
37
|
- Rakefile
|
38
38
|
- config/hoe.rb
|
39
39
|
- config/requirements.rb
|
40
|
-
-
|
40
|
+
- ext/ruby_fann/MANIFEST
|
41
|
+
- ext/ruby_fann/Makefile
|
41
42
|
- ext/ruby_fann/extconf.rb
|
42
43
|
- ext/ruby_fann/fann_augment.h
|
43
44
|
- ext/ruby_fann/neural_network.c
|
44
45
|
- lib/ruby_fann.rb
|
45
|
-
- lib/ruby_fann/version.rb
|
46
46
|
- lib/ruby_fann/neurotica.rb
|
47
|
+
- lib/ruby_fann/version.rb
|
47
48
|
- log/debug.log
|
49
|
+
- neurotica1.png
|
50
|
+
- neurotica2.vrml
|
48
51
|
- script/destroy
|
49
52
|
- script/generate
|
50
53
|
- script/txt2html
|
@@ -52,13 +55,20 @@ files:
|
|
52
55
|
- tasks/deployment.rake
|
53
56
|
- tasks/environment.rake
|
54
57
|
- tasks/website.rake
|
58
|
+
- test/test.train
|
55
59
|
- test/test_helper.rb
|
60
|
+
- test/test_neurotica.rb
|
56
61
|
- test/test_ruby_fann.rb
|
62
|
+
- test/test_ruby_fann_functional.rb
|
63
|
+
- verify.train
|
57
64
|
- website/index.html
|
58
65
|
- website/index.txt
|
59
66
|
- website/javascripts/rounded_corners_lite.inc.js
|
60
67
|
- website/stylesheets/screen.css
|
61
68
|
- website/template.rhtml
|
69
|
+
- xor.train
|
70
|
+
- xor_cascade.net
|
71
|
+
- xor_float.net
|
62
72
|
test_files:
|
63
73
|
- test/test_helper.rb
|
64
74
|
- test/test_neurotica.rb
|
@@ -75,8 +85,8 @@ extra_rdoc_files:
|
|
75
85
|
- website/index.txt
|
76
86
|
executables: []
|
77
87
|
|
78
|
-
extensions:
|
79
|
-
|
88
|
+
extensions:
|
89
|
+
- ext/ruby_fann/extconf.rb
|
80
90
|
requirements: []
|
81
91
|
|
82
92
|
dependencies: []
|