数学建模社区-数学中国
标题:
BP神经网络学习机器演示
[打印本页]
作者:
第二个太阳
时间:
2014-4-12 14:13
标题:
BP神经网络学习机器演示
采用文件保存数据,基于BP神经网络,可以自行调节隐含层的节点数以调节识别准确率
& G- p6 m3 d2 W2 Q5 s4 I4 u5 F7 @
注意:由于是个人开发测试识别率并不高,很多地方的匹配识别算法等都是最简单的那种,需要的人可以自己优化,识别和学习是需要先点“其他”按钮进行格式化面板才能继续操作
( R: b; q' w* R: [1 _, v9 {
% z9 ~8 ]. G0 ~) B9 ~7 w9 [6 a
2014-4-12 14:12 上传
下载附件
(10.63 KB)
7 Y" G* \1 P- [3 ~
5 S3 S7 v! K4 I& G0 y5 A, a
2014-4-12 14:12 上传
下载附件
(11.15 KB)
package ghost.writer.logic;
9 Q. ]% D: [! h' i. B0 _
% E! k/ `0 ^' H* ]9 F0 F) a
import java.io.File;
/ D( B8 c9 k6 Q& i
import java.io.FileInputStream;
1 o6 T! ^/ P. e* r z$ |
import java.io.FileOutputStream;
! F( u; O3 g' V4 }; m, M0 b8 g
import java.io.IOException;
4 X( X. z# p, V( q1 }
import java.io.ObjectInputStream;
2 ^, y) K1 i; C" S X2 [9 X
import java.io.ObjectOutputStream;
; |# J9 z- w" `! H9 f6 \
; j9 l& e; P9 `( c1 V+ C( ]
public class BPFactory {
7 w, @; G5 f5 W' p9 t _
/**
* P X! _1 ~- {* G& M. O! t
* BP神经网络元
, A' O) h* S2 W& `
*/
: b* J, @( C0 M# D
private static BP bp;
7 j- Z3 A+ [/ {
" p2 a/ _7 C" {3 V1 s
/**
" w' u$ o0 e9 _* q7 Z( ~
* 初始化一个全新的bp神经网络
' j3 F: V9 k+ B: Q3 c+ u
* @param inputSize
; c! \9 ~% D4 S& i% O; P8 R
* @param hiddenSize
$ Z. _; |. U* i
* @param outputSize
6 j3 N4 [! Y! X
*/
9 L6 R, Z: X' q4 d0 `
public static void initialization(int inputSize,int hiddenSize,int outputSize) {
' m$ E! R \ F) f! O9 N
bp=new BP(inputSize, hiddenSize, outputSize);
/ i0 q( G5 U9 j
}
( s2 Q6 P; i; S
4 K7 u+ c- {5 V5 r/ A
/**
2 I2 K2 j- ]7 l' O+ g2 P# E, h2 B
* 从文件数据中读取bp神经网络
: q2 r) Q. j. C8 D1 |4 q
* @param file
' `& ^, |$ Q' k _9 e
* @throws IOException
+ M& Y) l3 i* h$ r1 E! J- Q
* @throws ClassNotFoundException
v3 |, l" F- ]
*/
; c6 k# V+ m z S/ P! ~0 p4 D$ a
public static void initialization(File file) throws IOException, ClassNotFoundException {
7 ~( I' b9 c% [$ P' g2 ~# e' p
FileInputStream fi = new FileInputStream(file);
% q' m# q4 D' k; V- H# [
ObjectInputStream si = new ObjectInputStream(fi);
: c) d1 ]- E0 W! r+ ^7 `" ~
bp = (BP) si.readObject();
8 W, d0 y9 Q+ Q
si.close();
, k! b2 \- d/ L' h A
}
7 i, Q( F5 P. ~$ f
- O' I3 ^2 f: D. q" O' @
/**
! U/ k4 u& g; [6 D) g7 w
* 将目前的神经网络储存在指定文件
9 O+ w, j' u% {' ?& o
* @param file
6 O! x, F& N7 w. C) ]+ F; T# T
* @throws IOException
' \- f [$ N4 d, N+ n
*/
' D! I* s$ k4 x# D
public static void save(File file) throws IOException {
/ d/ r' E# O* F: q4 J! c; e4 v
FileOutputStream fo = new FileOutputStream(file);
$ m4 ]0 ?7 J# n, }, _; j7 Q/ Z Q
ObjectOutputStream so = new ObjectOutputStream(fo);
8 z7 R* _) s' d7 y
so.writeObject(bp);
/ V; E8 y7 \; t" A) t* ]9 j) H) ^
so.close();
8 a: [9 E9 O' I) v* w
}
% E1 t# w9 j/ S) e& y1 w) N
* a+ D' R3 [) S6 c0 G$ e: h* W
/**
t8 z& S" Q* h1 u* [
* 训练BP神经网络
. m9 m/ X N1 B! X5 v
* @param trainData
u: ^3 F4 X; v0 \% P0 }; l% b6 v
* @param target
8 [( F) r3 q2 t# W& {% w4 L' x: U
*/
( D9 Y$ \5 y0 u9 [( A4 A/ j
public static void train(double[] trainData, double[] target) {
2 [) ?6 Y$ y% o- P
bp.train(trainData, target);
; z+ @, }+ X/ `/ t x: ?* x
}
; w; w) y9 F! E/ _
j- b* C! |' |/ x8 h
/**
) N0 t% B Y& Y# r" ]
* 要求bp神经网络返回预测值
9 a' U7 b/ ]% R( x+ V
* @param inData
- b4 u9 `: }/ m A
* @return
. E3 K5 C! X5 x8 X+ L1 a8 K: H
*/
; X7 t& V1 d. A% F+ {
public static double[] test(double[] inData) {
: o1 S( c8 G/ Z' b
return bp.test(inData);
4 K J8 T+ t& [4 k2 T8 G
}
2 g3 B2 r6 O% g" P# c* k& M
}
复制代码
作者:
慢跑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!
6 I2 c3 [, |8 A6 b! R- V
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5