数学建模社区-数学中国
标题:
BP神经网络学习机器演示
[打印本页]
作者:
第二个太阳
时间:
2014-4-12 14:13
标题:
BP神经网络学习机器演示
采用文件保存数据,基于BP神经网络,可以自行调节隐含层的节点数以调节识别准确率
: k. M, L3 [8 M' g+ U2 I) i
注意:由于是个人开发测试识别率并不高,很多地方的匹配识别算法等都是最简单的那种,需要的人可以自己优化,识别和学习是需要先点“其他”按钮进行格式化面板才能继续操作
: T6 o5 M7 E8 |$ X$ R6 ^0 M$ F4 K
, q, Y' b% Q E6 \1 [' ?
2014-4-12 14:12 上传
下载附件
(10.63 KB)
S$ x2 w @1 E
$ H# p% y1 M6 T6 Z: A$ W( E
2014-4-12 14:12 上传
下载附件
(11.15 KB)
package ghost.writer.logic;
1 g0 ~1 K" }4 w1 O8 H, m3 |, y
1 `! Y. |% ` t+ P' J
import java.io.File;
, e. i: g# n5 h1 d9 ]( x7 K" @% j
import java.io.FileInputStream;
! B9 d$ d& M% Z9 E. W
import java.io.FileOutputStream;
' V: Q( T. N1 r. m1 g* ]
import java.io.IOException;
; M. o S7 F- T# s1 \; K
import java.io.ObjectInputStream;
; x9 G% g+ `7 b6 l8 ^# V6 N
import java.io.ObjectOutputStream;
3 q! }. M. o8 t" w9 S$ l" p" F6 Z( V& G
. w" i7 v3 U! K3 Q
public class BPFactory {
9 c7 l/ c) z$ c# h
/**
4 T3 V( a" }/ W/ @ n
* BP神经网络元
/ L# Q! o f0 P6 e8 w) }; g
*/
$ X- f' w+ p( n
private static BP bp;
* ]4 ^3 t" g9 o' `: [6 b
# z, G8 g6 L4 l* J; O5 U* x
/**
1 s: t6 k4 ` ^# m' l
* 初始化一个全新的bp神经网络
! [$ d: I5 B- A/ ~' T$ c; Y1 Y2 l
* @param inputSize
7 ?. V6 A. S S& G
* @param hiddenSize
: Z# ~, K! U: ?. G
* @param outputSize
# a5 A( S9 c4 j' @% |) k7 _) C2 [
*/
9 ]4 e; Z( U8 q4 I
public static void initialization(int inputSize,int hiddenSize,int outputSize) {
1 K& U, l8 x) p# f8 \6 d
bp=new BP(inputSize, hiddenSize, outputSize);
* _( T: j7 U& r- X% m
}
) n% L0 b. C0 i( {. C
4 G" M6 y$ O! O: P3 G L
/**
0 }# ?% }" V3 U
* 从文件数据中读取bp神经网络
0 B# P4 S4 E7 I" I
* @param file
! r* u7 C5 |% W0 g+ B0 s$ m
* @throws IOException
1 K; }3 @; y& X6 U9 r! w
* @throws ClassNotFoundException
( N0 \# E2 w7 G$ y) }
*/
" W# c3 V6 q7 f6 z5 i1 k9 ?- r
public static void initialization(File file) throws IOException, ClassNotFoundException {
. Y# k |3 e% K* d8 N/ X
FileInputStream fi = new FileInputStream(file);
" P# l f" f2 I! `, J2 y! ] I2 E
ObjectInputStream si = new ObjectInputStream(fi);
0 g1 x* C$ V! `4 j
bp = (BP) si.readObject();
9 @6 Y, e! a0 P' A5 t
si.close();
* d* H$ e+ Z" F3 q' _. J: Q' R
}
+ J( ]: r' O: B& x n
" P `3 I: x$ J/ `4 v
/**
; |" Q2 [6 i% R9 u2 Q3 W
* 将目前的神经网络储存在指定文件
' y. s% B. _7 n! c- B
* @param file
! c3 p0 e" e0 x% }+ h
* @throws IOException
; z) n( r9 j1 k0 O
*/
1 ?: I" C$ p8 ?9 P3 u( a% _
public static void save(File file) throws IOException {
& |% p: G6 r- d% V0 U
FileOutputStream fo = new FileOutputStream(file);
' L4 r, D/ l+ p( o( q& ^
ObjectOutputStream so = new ObjectOutputStream(fo);
" F6 F+ Q0 t. u/ q
so.writeObject(bp);
4 n1 s* v4 B. b* c) m
so.close();
* x0 w- s) J+ d3 {6 f! ? h8 z
}
8 H7 Z. c3 p: N) R4 O+ E
) d9 p& i% T) S, m" k+ g8 Z2 N
/**
3 V& R1 h4 T; j6 m8 Y4 q
* 训练BP神经网络
1 {8 L9 a2 E) s" F5 ^
* @param trainData
* A) w9 b& E6 u
* @param target
- H+ i& v! l2 x- ~
*/
6 J/ @6 Z) o! R& F5 w# L
public static void train(double[] trainData, double[] target) {
0 X( M1 M: Q( Z6 n" R/ D) ^# c
bp.train(trainData, target);
8 g3 G/ `8 N: s* j7 i
}
; J6 f: m* f* Y' }
3 g2 ] q; g9 x9 l+ i
/**
4 M7 x3 a; X/ z$ F1 }! r4 Y! ?
* 要求bp神经网络返回预测值
2 b9 m: M7 N) ^ v
* @param inData
/ ~6 I( [. |( E5 V" D" d
* @return
* M, f+ C! m, k* w, N) X# U e
*/
: }$ o& n+ D5 ]8 l7 M" B/ _, _/ H
public static double[] test(double[] inData) {
) e/ k, F2 Z+ l
return bp.test(inData);
. s: v- h7 W2 L
}
' |) ?0 e4 Z" _7 W* {6 b
}
复制代码
作者:
慢跑20
时间:
2014-4-23 16:33
个人开发的JAVA代码呀,感谢共享分享啊
作者:
liusichao999
时间:
2014-4-24 12:49
楼主,好东西,最近要学这个东西~
作者:
狼之魂汪洋
时间:
2014-8-6 14:47
好东西大家分享
作者:
LYJA
时间:
2016-9-4 13:05
It is so good,thank you very much!
: @& o5 y6 V. _5 y! e4 e7 K
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5