数学建模社区-数学中国
标题:
BP神经网络学习机器演示
[打印本页]
作者:
第二个太阳
时间:
2014-4-12 14:13
标题:
BP神经网络学习机器演示
采用文件保存数据,基于BP神经网络,可以自行调节隐含层的节点数以调节识别准确率
: U9 `$ Y0 P& o7 R% C
注意:由于是个人开发测试识别率并不高,很多地方的匹配识别算法等都是最简单的那种,需要的人可以自己优化,识别和学习是需要先点“其他”按钮进行格式化面板才能继续操作
" G$ }# ^- @9 q0 L- T
" M& ?/ D# \- C
2014-4-12 14:12 上传
下载附件
(10.63 KB)
) A' d; P* w" q' v( ~" a# J
6 B0 d, R3 J2 k9 }; Z$ L
2014-4-12 14:12 上传
下载附件
(11.15 KB)
package ghost.writer.logic;
, v! `# l# y% |$ Q1 J7 q
4 t; C0 N [- A& R7 ]* A7 { F
import java.io.File;
. f' j! t" Z! f; Y! w" `
import java.io.FileInputStream;
1 ^) S$ e% A# E5 e. U5 Z) A S
import java.io.FileOutputStream;
( C1 b% N2 O: V
import java.io.IOException;
+ {. b" x, q9 `4 I& i
import java.io.ObjectInputStream;
2 o3 a U& @4 a; L+ }2 W/ B
import java.io.ObjectOutputStream;
5 S/ X; N W2 |
; z( |9 |, t) S% X4 F9 w; `
public class BPFactory {
/ v3 L1 d9 p, `' K
/**
' p+ M+ f a+ Z/ m( a5 V$ y
* BP神经网络元
4 s+ I; w% g6 U) w1 e9 p
*/
5 x* F: ^6 _/ d0 _/ c* {, Q
private static BP bp;
; e8 [7 P0 g8 n$ f; V
% e8 K! a5 S! z: v) } x& n; h
/**
8 z4 |1 g& r. O( r- e M, {. K2 k7 ]9 O
* 初始化一个全新的bp神经网络
, g/ O' O" e7 c) a0 n
* @param inputSize
; S% N1 R! l+ O) a8 t
* @param hiddenSize
. @$ g$ n# N4 }8 p9 j% `+ n5 v
* @param outputSize
( ?$ Z) G, m' ^! I
*/
; S: ~( n/ v2 d
public static void initialization(int inputSize,int hiddenSize,int outputSize) {
5 F; s) ^5 w0 {* E5 q# Y: o) l
bp=new BP(inputSize, hiddenSize, outputSize);
7 w8 [7 C. B m5 u$ ?* V6 a& ~
}
0 p+ Y W# v9 x: r5 I
- c$ t8 b& o5 E7 ?2 S& S
/**
& G( H! p) s: y# k/ D: r: L
* 从文件数据中读取bp神经网络
, N2 ^3 F0 \: H6 ~4 L! R1 z( k
* @param file
- @3 _6 z4 B; C& `) y. v3 U
* @throws IOException
3 s- `; }5 _, a6 J6 E
* @throws ClassNotFoundException
4 P6 ] \# T$ N8 V! U( G
*/
6 o" {( ^7 \7 I/ {- Z! }
public static void initialization(File file) throws IOException, ClassNotFoundException {
+ ~5 x8 t* l- S
FileInputStream fi = new FileInputStream(file);
& x' \2 {3 f/ I) |! V5 K! S
ObjectInputStream si = new ObjectInputStream(fi);
0 Q- q: n7 s! }7 k V
bp = (BP) si.readObject();
x, ~7 s4 v- J) \# ?7 Q; g
si.close();
! {& {( G U/ k. N' u
}
# Q: D$ q3 t9 j+ i8 D# t6 @
3 U/ X M# M. D
/**
- W# R+ Q/ ]0 w. d' d% J$ P
* 将目前的神经网络储存在指定文件
7 }% x& F4 ?; u4 T. V2 B
* @param file
9 ^' q# ^; c$ Z9 M
* @throws IOException
# r9 c3 a6 q Y) c& N: I% i
*/
$ ~1 g& t# ]7 o6 F: n: G
public static void save(File file) throws IOException {
8 [5 m/ @2 P, V2 I$ S, I; @2 p7 s
FileOutputStream fo = new FileOutputStream(file);
$ Q3 T8 B5 E& V4 X# ]
ObjectOutputStream so = new ObjectOutputStream(fo);
% y. h/ F9 ]! c1 E" q$ o9 k
so.writeObject(bp);
7 p8 U' w' q2 A9 B" ]# l
so.close();
+ ~9 ^3 k }# Z6 L
}
% g4 w8 G4 m% g8 }2 o& J
0 ~6 I7 A9 O! c3 C
/**
4 g. \3 x" s/ \& F( b! K* |
* 训练BP神经网络
, I0 i- ^+ h8 o! _6 m, j' L
* @param trainData
! N5 Q: W+ {3 Z' n
* @param target
7 b5 j4 Q/ y2 Q0 ?
*/
4 J# h0 L: C( Y5 u1 m! O
public static void train(double[] trainData, double[] target) {
# `+ V( m" s- e5 w* t- ]3 u# k
bp.train(trainData, target);
; y1 Y9 z+ c* s$ |8 L0 C; o
}
; W0 E3 t8 g. s
7 {; ~# c: r4 a9 i' X1 }2 t8 [
/**
4 {9 s. I; N/ v+ s' O" ]- t
* 要求bp神经网络返回预测值
/ ^/ _& M5 w0 m$ {" W; c
* @param inData
! @1 q: Q l+ h
* @return
/ I! G" L$ |# m7 \! T& H
*/
1 d8 J% j3 B( c* \; A& [; u. Q6 C
public static double[] test(double[] inData) {
4 e( h6 K( V9 u* }
return bp.test(inData);
% t& X0 {5 R: X+ G+ _2 a
}
8 l; y9 z' a4 N, p3 w3 k' T
}
复制代码
作者:
慢跑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!
2 W& \' b, m E, h% H, E3 j: j+ Y
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5