数学建模社区-数学中国
标题:
BP神经网络学习机器演示
[打印本页]
作者:
第二个太阳
时间:
2014-4-12 14:13
标题:
BP神经网络学习机器演示
采用文件保存数据,基于BP神经网络,可以自行调节隐含层的节点数以调节识别准确率
; v) n- Y! S$ ?$ u; @) o
注意:由于是个人开发测试识别率并不高,很多地方的匹配识别算法等都是最简单的那种,需要的人可以自己优化,识别和学习是需要先点“其他”按钮进行格式化面板才能继续操作
3 | g, e# c! p( R+ ^& q
' e% t) i' a* T
2014-4-12 14:12 上传
下载附件
(10.63 KB)
+ |" n7 Y" s, |5 |* x/ ~$ r4 ?8 k
5 k& ]9 ^9 i& c! ^( I
2014-4-12 14:12 上传
下载附件
(11.15 KB)
package ghost.writer.logic;
4 {$ |/ w0 ?; J: m+ o8 | s3 q
% h6 l: v% J/ {
import java.io.File;
* Q) A% N+ x; P9 F
import java.io.FileInputStream;
% ?# V7 P- R+ @
import java.io.FileOutputStream;
. ~1 X; B0 F! Z: [% v
import java.io.IOException;
1 W0 \6 s+ s5 s) b2 w9 G
import java.io.ObjectInputStream;
$ H2 X2 d* u! M. n+ M3 S
import java.io.ObjectOutputStream;
6 ]" K1 I2 X7 G: o5 F8 \
7 F& p3 ]- G6 A0 G9 m
public class BPFactory {
. A. V/ P9 M! c& g
/**
5 r- N4 Y: p3 b
* BP神经网络元
' i8 b+ t& |: B# n7 A& _! M' w$ I
*/
6 B7 N& ?+ R! F0 s- v8 }
private static BP bp;
& u+ J1 P* R M+ P
6 Y" `: I" B2 T; o& |# S, z; T$ c
/**
( W( \. `# Y! a% }0 K% c; V
* 初始化一个全新的bp神经网络
# E3 ~) m, f/ ]- P c# h y
* @param inputSize
' [0 f) U. Z' i) u+ e
* @param hiddenSize
1 l' [! W1 U- Z" ?# N; e
* @param outputSize
* R6 M( | b3 @! s: I
*/
9 h0 J4 w! W5 a& N8 L& H* _
public static void initialization(int inputSize,int hiddenSize,int outputSize) {
2 x8 Z' D" _$ \
bp=new BP(inputSize, hiddenSize, outputSize);
9 ]/ F) U5 X2 i' y8 h. V
}
/ J4 y, Q9 e9 O$ `% U, Z2 N( E9 I' v
7 f9 n) N/ H9 p
/**
3 R E0 n8 ]$ _
* 从文件数据中读取bp神经网络
1 _: i$ ?' |+ K( [9 D. [# d
* @param file
9 V; N' ~2 \6 t
* @throws IOException
! k% S l9 v. o8 q
* @throws ClassNotFoundException
$ Q# D5 }; T4 Z o* n
*/
. q# ]' a1 E+ U) K Z9 e
public static void initialization(File file) throws IOException, ClassNotFoundException {
3 J+ |( ], ] q! t m8 K
FileInputStream fi = new FileInputStream(file);
- W# \3 d% `6 d6 F% m; e6 t0 w( N9 ~- l
ObjectInputStream si = new ObjectInputStream(fi);
! g/ M. u! K+ [3 ~: Z
bp = (BP) si.readObject();
1 C( d D) i) s. ? `1 m
si.close();
2 y* [5 y9 a1 ~' ~
}
4 b0 g! i. @- ]4 O
5 a1 j8 o( u. @/ |
/**
$ p% Y! t% Y3 `/ G5 E
* 将目前的神经网络储存在指定文件
7 u9 a' \& R5 \. U) i9 g! n
* @param file
. P& A2 S5 z, }5 M
* @throws IOException
! {- V p+ b5 Z9 ], q) V
*/
- a. d/ T9 L; N- r
public static void save(File file) throws IOException {
1 K6 ]# l% s; `* Z" ^6 t
FileOutputStream fo = new FileOutputStream(file);
) h4 c2 v: _9 [4 i3 l
ObjectOutputStream so = new ObjectOutputStream(fo);
( w5 j$ k- ~% T" `, l! H1 _
so.writeObject(bp);
2 ?% M: C2 \& J( k. `5 H1 B5 f
so.close();
6 F( W3 K! `2 A0 @4 R8 m/ [
}
# h/ T% D" J9 s. \9 w/ B0 Y
+ h$ a/ i' g( k) K7 d7 ?( |
/**
; v- M: N0 r* p2 ?6 Z Q
* 训练BP神经网络
. ?' O# y% I) b8 n* R4 J2 R( { Q
* @param trainData
* u8 P. C/ V0 Y$ [
* @param target
, j( S" k; j, G$ w$ o* T
*/
5 O+ f0 Y4 A# q0 r! n" O/ t; F
public static void train(double[] trainData, double[] target) {
2 A" X! m! P3 _1 Q1 W+ G+ E. Q
bp.train(trainData, target);
& Y# E" F) z7 H) x
}
' q& O/ t6 y2 K7 u
' U: D5 o1 B Q% u8 w, I; z7 t8 T
/**
: A* n: p5 c6 @4 o% C6 }5 ^
* 要求bp神经网络返回预测值
9 k$ @5 |' }4 |- w/ c
* @param inData
$ _% D+ e4 d" F( B8 {8 D
* @return
6 {! I; F5 m8 l/ D5 k& W* X. Z( {
*/
/ }/ H5 e( O: x% O6 \- P
public static double[] test(double[] inData) {
6 R0 Z; [6 _8 A) h. m2 I
return bp.test(inData);
" |4 d! q" m% D7 Q* ~8 o
}
3 g5 w7 G0 D# }3 t9 v
}
复制代码
作者:
慢跑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!
' y6 F n1 P) a; m+ ?0 H! ~8 t
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5