(Luận văn thạc sĩ hcmute) ứng dụng mạng nơron kiểm tra bảng mạch điện tử

111 1 0
(Luận văn thạc sĩ hcmute) ứng dụng mạng nơron kiểm tra bảng mạch điện tử

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ NGUYỄN QUỐC BÌNH ỨNG DỤNG MẠNG NƠRON KIỂM TRA BẢNG MẠCH ĐIỆN TỬ NGÀNH: KỸ THUẬT ĐIỆN TỬ - 605270 S K C0 Tp Hồ Chí Minh, tháng 10/2014 Luan van BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ NGUYỄN QUỐC BÌNH ỨNG DỤNG MẠNG NƠRON KIỂM TRA BẢNG MẠCH ĐIỆN TỬ NGÀNH: KỸ THUẬT ĐIỆN TỬ - 605270 Tp Hồ Chí Minh, tháng 10 năm 2014 Luan van BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ NGUYỄN QUỐC BÌNH ỨNG DỤNG MẠNG NƠRON KIỂM TRA BẢNG MẠCH ĐIỆN TỬ NGÀNH: KỸ THUẬT ĐIỆN TỬ - 605270 Hướng dẫn khoa học: TS HỒNG MINH TRÍ Tp Hồ Chí Minh, tháng 10 năm 2014 Luan van LÝ LỊCH KHOA HỌC I LÝ LỊCH SƠ LƯỢC: Họ & tên: Nguyễn Quốc Bình Giới tính: Nam Ngày, tháng, năm sinh: 19/11/1976 Nơi sinh: Tây Ninh Quê quán: Châu thành, Tây Ninh Dân tộc: Kinh Chỗ riêng địa liên lạc:390/18/16 Phan huy ích, Phường 12, Quận Gò Vấp Tp.HCM Điện thoại quan: 08.38521063 Điện thoại nhà riêng: 08.39470553 Fax: E-mail: binh.nguyenquoc@stu.edu.vn II QUÁ TRÌNH ĐÀO TẠO: Trung học chuyên nghiệp: Hệ đào tạo: Thời gian đào tạo từ ……/…… đến ……/ …… Nơi học (trường, thành phố): Ngành học: Đại học: Hệ đào tạo: Chính quy Thời gian đào tạo từ tháng 6/1995 đến tháng 6/ 2000 Nơi học:Đại học Kỹ thuật Công nghệ Tp.HCM Ngành học:Điện tử Viễn thông Tên đồ án, luận án môn thi tốt nghiệp: Tổng đài PABX 3-8 Ngày & nơi bảo vệ đồ án, luận án thi tốt nghiệp: Tháng năm 2000 Đại học Kỹ thuật Công nghệ Tp.HCM Người hướng dẫn: Ths Tạ Cơng Đức Trang i Luan van III Q TRÌNH CÔNG TÁC CHUYÊN MÔN KỂ TỪ KHI TỐT NGHIỆP ĐẠI HỌC: Thời gian Từ năm 2000 – 2002 Từ năm 2003 - 2005 Từ năm 2005 - 2007 Từ năm 2007- đến Nơi công tác Công việc đảm nhiệm Viện Cơng nghệ viễn thơng Nhân viên phịng nghiên (CTT) Tp HCM cứu Đại Học Lạc Hồng Biên Hòa, Đồng Nai Giảng viên Công Ty Cổ Phẩn TTLD Nhân viên phịng nghiên Tp HCM cứu Đại học Cơng nghệ Sài gòn TP.HCM Giảng viên Tp HCM, ngày….tháng…năm 2014 Nguyễn Quốc Bình Trang ii Luan van LỜI CAM ĐOAN Tơi cam đoan cơng trình nghiên cứu tơi Các số liệu, kết nêu luận văn trung thực chưa công bố cơng trình khác Tp Hồ Chí Minh, ngày … tháng … năm 201… (Ký tên ghi rõ họ tên) Nguyễn Quốc Bình Trang iii Luan van LỜI CAM TẠ Em xin chân thành gởi tới thầy Tiến sĩ Hồng Minh Trí lịng biết ơn sâu sắc Xin cảm ơn Thầy hướng dẫn tận tình suốt q trình em thực hồn thành Luận văn tốt nghiệp Em xin gởi lời cảm ơn tới tất Thầy, Cô Khoa Điện-Điện tử trang bị cho em có kiến thức q báu hai năm học vừa qua Xin cảm ơn giúp đỡ, động viên nhiệt tình tất bạn bè suốt trình học tập thời gian thực Luận văn Học viên Nguyễn Quốc Bình Trang iv Luan van Tóm tắt Kỹ thuật linh kiện dán bề mặt (SMT) công nghệ phổ biến sử dụng nhà máy sản xuất bảng mạch điện tử (PCBs) Với giải pháp sử dụng linh kiện dán, trình sản xuất cải thiện rõ ràng tốc độ nguy lỗi tăng lên Việc phát lỗi trình sản xuất quan trọng q trình tối ưu hóa quy trình cơng nghiệp Trong luận văn giới thiệu phương pháp phát lỗi bảng mạch điện tử ứng dụng mạng nơron Abstract Surface mounted technology (SMT) is one of the mostcommon technologies used in producing printed circuitsboards (PCBs).By employing SMT, the production process speeds up, butthe risk of defects increases.The defect detection on manufactures is extremelyimportant in the optimization of industrial processes This thesisintroduces a defect detectingmethod of printed circuits boardsbased on Neural Networks Trang v Luan van MỤC LỤC Trang tựa Trang Quyết định giao đề tài Lý lịch cá nhân …………………………………………………………………… i Lời cam đoan …………………………………………………………………… iii Cảm tạ …………………………………………………………………………… iv Tóm tắt …………………………………………………………………………… v Mục lục …………………………………………………………………………… vi Danh sách chữ viết tắt………………………………………………………… ix Danh sách hình ………………………………………………………………… x Chƣơng 1TỔNG QUAN ĐỀ TÀI 1.1 Tổng quan chung lĩnh vực nghiên cứu .1 1.2 Mục tiêu đề tài .7 1.3 Nhiệm vụ giới hạn đề tài 1.4 Phương pháp nghiên cứu .8 1.5 Ý nghĩa thực tiễn tính cấp thiết đề tài Chƣơng 2CƠ SỞ LÝ THUYẾT .10 2.1 Xử lý ảnh .10 2.1.1 Một số khái niệm .10 2.1.2 Biểu diễn ảnh dạng ma trận 11 2.1.3 Độ phân giải ảnh 12 2.1.4 Sơ lược nhận dạng mẫu 12 2.2 Một số biến đổi ảnh .13 vi Luan van 2.2.1 Biến đổi đơn 13 2.2.2 Biến đổi Fourier rời rạc hai chiều (DFT-2D) .14 2.2.3 Biến đổi cosine rời rạc hai chiều 16 2.2.4 Biến đổi wavelet 17 2.3 Một số phương pháp tăng cường ảnh 21 2.3.1 Phép phân tích thành phần 22 2.3.2 Phương pháp loại nhiễu 24 2.4 Sơ lược đặc trưng ảnh 25 2.4.1 Đặc trưng màu sắc 25 2.4.2 Đặc trưng kết cấu 26 2.4.3 Đặc trưng hình dạng .26 2.4.4 Đặc trưng cục bố bất biến .27 2.5 Mạng nơron 27 2.5.1 Mạng perceptron lớp (single layer perceptron networks) .28 2.5.2 Mạng perceptron nhiều lớp (multilayer layer perceptron networks) 30 2.5.3 Các yếu tố ảnh hưởng đến tốc độ hội tụ luật học lan truyền .33 Chƣơng 3THIẾT KẾ HỆ THỐNG VÀ THỰC NGHIỆM 37 3.1 Tổng quan 37 3.2 Một số lỗi thường thấy trình sản xuất bảng mạch điện tử 37 3.3 Phương pháp giải đề tài .39 3.3.1 Trích đặc trưng 43 3.3.2 Xây dựng mạng nơron nhận dạng lỗi 45 3.4 Kết mô 49 3.4.1 Quá trình học mẫu .51 vii Luan van TÀI LIỆU THAM KHẢO TIẾNG VIỆT TS Nguyễn Thanh Hải,slide giảng xử lý ảnh, Tài liệu tham khảo, 2013 TS Ngô Văn Thuyên, slide giảng feedforward networks, Tài liệu tham khảo, 2013 TS Đỗ Năng Toàn, TS Phạm Việt Bình,Xử lý ảnh, Đại học Thái Nguyên, tháng 11 năm 2007, 76 trang TS Hồ Văn Sung, Xử lý ảnh số lý thuyết thực hành với Matlab, Nhà xuất khoa học kỹ thuật, Hà Nội 2013, 304 trang Phạm Hữu Đức Dục, Mạng nơron ứng dụng điều khiển tự động, Nhà xuất khoa học kỹ thuật, Hà Nội 2009, 292 trang Ngô Văn Sỹ, Nhận dạng ký tự quang học mạng nơron, Tạp chí khoa học công nghệ, Đại Học Đà Nẵng số 4(27), 2008 Huỳnh Hữu Lộc, Lưu Quốc Hải, Đinh Đức Anh Vũ, Nhận chữ viết tay dùng rút trích thơng tin theo chiều mạng nơron, Science & Technology Development, Vol 14, No.K2- 2011 Huỳnh Ngọc Lộc, Nhận dạng biển báo giao thông sơ sử dụng lọc gabor mạng nơron, Đại Học Đà Nẵng, 2013 TIẾNG NƢỚC NGOÀI M Moganti, F Ercal, C Dagli, S Tsunekawa, Automatic PCB inspection algorithms: a survey, Computer Vision and Image Understanding, Vol 63, N° 2, pp.287-313,1996 10 Ahmed Nabil BELBACHIR, Mario LERA, Alessandra FANNI and Augusto MONTISCI, An Automatic Optical Inspection System for the Diagnosis of Printed Circuits Based on Neural Networks, IEEE, 2005 82 Luan van 11 Giuseppe Acciani, Gioacchino Brunetti and Girolamo Fornarelli, Application of Neural Networks in Optical Inspection and Classification of Solder Joints in Surface Mount Technology, IEEE, August 2006 12 K Sundaraj, PCB Inspection for Missing or Misaligned Components using Background Subtraction, Information Science and Applications,May 2009 13 Zhou Zeng, LiZhuang Ma and ZuoYong Zheng, Extracting PCB components based on color distribution of highlight areas, Advanced Materials Research, vol 97-101 pp 2940-2943, February 2010 14 Mar, Nang Seng Siri and Fookes, Clinton and Prasad, Automatic Solder Joint Defect Classification using the Log-Gabor Filter, K.D.V Yarlagadda 2010 15 Sanveer Singh, Manu Bharti, Image Processing Based Automatic Visual Inspection System for PCBs, June 2012 16 Xibing Li and Jianjia Wang, Defect Detection of SMT Electronic Modules, Natural Sciences Publishing Cor, Mar 2013 17 Eng Ruba A Salamah, EELE 5310: Digital Image Processing 18 Mark Hudson Beale, Martin T Hagan, Howard B Demuth, Neural Network Toolbox™ User’s Guide, MathWorks2013 19 Mark Hudson Beale, Martin T Hagan, Howard B Demuth, Neural Network Toolbox™ Reference, MathWorks2013 20 Một số tài liệu từ internet http://www.model22x.com http://en.wikipedia.org/wiki/Automated_optical_inspection https://www.google.com.vn/search?q=AOI+automatic+optical+inspection++YouTube&ie=utf-8&oe=utf-8&rls=org.mozilla:en-US:official&client=firefoxa&channel=np&source=hp&gws_rd=cr 83 Luan van PHỤ LỤC Sơ đồ mạch card điều khiển motor bƣớc VCC C19 SW1 R28 4.7K 0.1 RESET VCC C20 SW2 BOOT R29 4.7K Y Half _Full Y Clock Y Cw_Ccw Y Enable XHalf _Full XClock XCw_Ccw XEnable VCC 0.1 C33 15p Y1 20MHz C34 15p J5 1K VBUS DD+ GND SHIELD SHIELD Y Reset XReset R57 DD+ D4 LED_USB J6 KEY BOARD U11 10 11 12 13 14 15 16 17 18 24 23 C49 1uF R35 1.5K MCLR/VPP/RE3 RB7/KBI3/PGD RA0/AN0 RB6/KBI2/PGC RA1/AN1 RB5/KBI1/PGM RA2/AN2/VREF-/CVREF RB4/AN11/KBI0/CSSPP RA3/AN3/VREF+ RB3/AN9/CCP2/VPO RA4/T0CKI/C1OUT/RCV RB2/AN8/INT2/VMO RA5/AN4/SS/HLVDIN/C2OUT RB1/AN10/INT1/SCK/SCL RE0/AN5/CK1SPP RB0/AN12/INT0/FLT0/SDI/SDA RE1/AN6/CK2SPP VDD1 RE2/AN7/OESPP VSS1 VDD RC6/TX/CK VSS RC7/RX/DT/SDO OSC1/CLKI RD4/SPP4 OSC2/CLKO/RA6 RD5/SPP5/P1B RC0/T1OSO/T13CKI RD6/SPP6/P1C RC1/T1OSI/CCP2/UOE RD7/SPP7/P1D RC2/CCP1/P1A RD3/SPP3 VUSB RD2/SPP2 RC5/D+/VP RD1/SPP1 RC4/D-/VM RD0/SPP0 40 39 38 37 36 35 34 33 32 31 25 26 27 28 29 30 22 21 20 19 VCC Buzzer Y 1SENSOR Y 2SENSOR X1SENSOR X2SENSOR LED_V1 LED_V2 R37 R36 PIC18F4550 D+ D- USB_HDR R60 47K VCC Vpower R62 VCC D7 D XClock 17 XCw_Ccw 10 XEnable U12 L297 CLOCK A B D CW/CCW INH1 ENABLE INH2 VCC CONTROL Vref SENSE2 10 12 11 14 13 15 B D11 D D13 D A D9 D Q1 L3 STEP MOTOR C D Q2 INH1 Q3 13 INH2 L4 STEP MOTOR SENSE1 SENSE2 Q4 14 R61 15 GND 10K SENSE1 SYNC 11 VCC C Vpower 12 VCC HALF/FULL U13 L298 GND 18 RESET HOME 19 XHalf _Full OSC 16 4.7K 20 VCC VCC D5 D6 VCC C35 20nF XReset 560 560 R58 10 R59 10 D8 D D10 D D12 D D14 D D15 D D17 D D19 D D21 D SY NC VCC VCC Vpower R67 VCC 17 Y Cw_Ccw 10 Y Enable U14 L297 CLOCK A B D CW/CCW INH1 ENABLE INH2 VCC 10K Vref SENSE2 10 12 11 14 13 15 B A Q1 L5 STEP MOTOR C D Q2 INH1 Q3 13 INH2 L6 STEP MOTOR SENSE1 SENSE2 Q4 14 D16 D R63 15 SENSE1 SYNC CONTROL GND 11 VCC C Vpower 12 HALF/FULL U15 L298 GND 18 Y Clock HOME 19 Y Half _Full RESET VCC 20 Y Reset OSC 16 4.7K R64 10 R65 10 SY NC 84 Luan van D18 D D20 D D22 D RED GREEN Code m file AOIBQ.m % Author: Nguyen Quoc Binh (binh.nguyenquoc@stu.edu.vn) Một số hàm liên quan Camera Khởi động camera ObjVideo = videoinput('winvideo', InfoDevice.DeviceID, 'YUY2_640x480', 'returnedcolorspace', 'rgb'); triggerconfig(ObjVideo, 'manual'); set(ObjVideo, 'TriggerRepeat', Inf); set(ObjVideo, 'Framespertrigger', 1); if isvalid(ObjVideo) if isrunning(ObjVideo) stop(ObjVideo); end end Chụp ảnh if isrunning(ObjVideo) StopTimer(); FrameImg = getsnapshot(ObjVideo); MatROI = imcrop(FrameImg, rectImg); axes(handles.axesSnapshot); imshow(MatROI); StartTimer(); end Load ảnh StopTimer(); [filename, pathname] = uigetfile({'*.jpg;*.tif;*.png;*.gif', 'All Image Files';'*.*','All Files'}, 'Select image', 'D:\A Luan van BQ\AOI Matlab\Data Image'); if isequal(filename, 0) set(handles.txtInfo, 'String', 'User selected Cancel'); StartTimer(); return; end % Read image ReadImg = imread(fullfile(pathname,filename)); axes(handles.axesOpen); imshow(ReadImg); Save ảnh StopTimer(); [filename, pathname] = uiputfile({'*.jpg;*.tif;*.png;*.gif', 'All Image Files';'*.*','All Files'}, 'Save image', 85 Luan van 'D:\A Luan van BQ\AOI Matlab\Data Image'); if isequal(filename, 0) set(handles.txtInfo, 'String', 'User selected Cancel'); StartTimer(); return; end if (~isempty(MatROI)) imwrite(MatROI, fullfile(pathname, filename)); % Write image % Hien thi thong tin set(handles.txtInfo, 'string', 'Write a frame from video input'); else set(handles.txtInfo, 'string', 'FrameImg is empty'); end StartTimer(); Một số hàm trích đặc trƣng % Value Area function ValueA = AreaA(matrixImage) [r,c] = size(matrixImage); ValueA = 0; for i=1:r % rows for j=1:c % Columns TempA = matrixImage(i,j)/255; % Sij ValueA = ValueA + TempA; end end % Value Perimeter function ValueP = PerimeterA(matrixImage) [r,c] = size(matrixImage); ppi = 0; ppj = 0; for i=1:(r-1) % rows for j=1:(c-1) % Columns pSij = matrixImage(i,j)/255; % S(i,j) pSi1j = matrixImage(i+1,j)/255; % S(i+1,j) pSij1 = matrixImage(i,j+1)/255; % S(i,j+1) ppi = ppi + abs(pSij-pSi1j); ppj = ppj + abs(pSij-pSij1); end end ValueP = ppi + ppj; % Value Compactness function ValueC = CompactnessA(a, p) pValueP = p*p; ValueC = a/pValueP; % For matrices X, max(X) is a row vector containing the maximum element from each column % Value Height 86 Luan van function ValueH = HeightA(matrixImage) s = max(matrixImage);% s = [MaxC1, MaxC2, MaxCc] ValueH = 0; % Sum values max of all columns for i=1:length(s) TempH = s(i)/255; ValueH = ValueH + TempH; end % Value Width function ValueW = WidthA(matrixImage) [r,c]=size(matrixImage); x = zeros(1,c);% row, c col s = zeros(1,r);% Created a row vector containing the maximum element from each row ValueW = 0; for i=1:r for j=1:c x(j) = matrixImage(i,j);% get a row end s(i) = max(x);% Value max of row s = [MaxH1, MaxH2, MaxHr] end % Sum values max of all rows for i=1:length(s) TempW = s(i)/255; ValueW = ValueW + TempW; end % Value Length function ValueL = LengthA(matrixImage) [r,c]=size(matrixImage); x = zeros(1,c);% Created a row vector containing sum value from each col for j=1:c valueT = 0; for i=1:r Lij = matrixImage(i,j)/255; valueT = valueT + Lij;% Sum values of col end x(j) = valueT; end ValueL = max(x); % Value Breadth function ValueB = BreadthA(matrixImage) [r,c]=size(matrixImage); x = zeros(1,r);% Created a row vector containing sum value from each row for i=1:r valueT = 0; for j=1:c Bij = matrixImage(i,j)/255; 87 Luan van valueT = valueT + Bij;% Total values of row end x(i) = valueT; end ValueB = max(x); % Value Index function ValueI = IndexA(a, l, b) pValueI = l*b; ValueI = a/pValueI; % Value Avg function ValueG = AvgA(matrixImage) [r,c] = size(matrixImage); ValueG = 0; for i=1:r % rows for j=1:c % Columns TempA = matrixImage(i,j)/255; % Sij ValueG = ValueG + TempA; end end ValueG = ValueG/(r*c); % Value Variance function ValueV = VarianceA(matrixImage, g) [r,c] = size(matrixImage); ValueV = 0; for i=1:r % rows for j=1:c % Columns TempA = abs(((matrixImage(i,j))/255) - g); % Sij - avg(S) TempA = TempA*TempA; ValueV = ValueV + TempA; end end % Value Standard Deviation function ValueS = SDeviationA(matrixImage, v) [r,c] = size(matrixImage); ValueS = v/(r*c); ValueS = sqrt(ValueS); % Value DCrossed function ValueD = DCrossedA(matrixImage) [r,c] = size(matrixImage); ValueD = 0; for i=1:r % rows j=i; % Columns TempA = matrixImage(i,j)/255; % Sij ValueD = ValueD + TempA; end % Value UCrossed 88 Luan van function ValueU = UCrossedA(matrixImage) [r,c] = size(matrixImage); ValueU = 0; for i=1:r % rows j=(c+1)-i; % Columns TempA = matrixImage(i,j)/255; % Sij ValueU = ValueU + TempA; end Code học mẫu InputVector = [a,p,c,h,w,l,b,i,v,s,d,u]; NumberP=size(InputVector); InputElements = NumberP(2); if (get(handles.radioTrue, 'Value')) TargetOutput = [1,0]; elseif (get(handles.radioFalse, 'Value')) TargetOutput = [0,1]; end NumberT = size(TargetOutput); outputLayerNoron = NumberT(2); load(fullfile(pathnameMat,filenameMat),'P','T'); if (isempty(P)) c=1; r=InputElements; for i=1:r P(i,c)=InputVector(i); end r=outputLayerNoron; for i=1:r T(i,c)=TargetOutput(i); end else [r,c]=size(P); for i=1:r P(i,c+1)=InputVector(i); end [r,c]=size(T); for i=1:r T(i,c+1)=TargetOutput(i); end end % saves the specified variables to a MAT-file save(fullfile(pathnameMat,filenameMat),'P','T'); NoSamples = size(P); set(handles.txtSamples, 'String', NoSamples(2)); inputs = P targets = T 89 Luan van Code huấn luyện kiểm tra StopTimer(); hiddenLayerNoron = str2double(get(handles.editHiddenNoron,'String')); bqEpochs = str2double(get(handles.editEpochs,'String')); bqGoal = str2double(get(handles.editGoal,'String')); bqLearningRate = str2double(get(handles.editLearningRate,'String')); % loads the specified variables from a MAT-file load(fullfile(pathnameMat,filenameMat),'P','T'); inputs = P; targets = T; NumberP = size(P); InputElements = NumberP(1); NumberT = size(T); outputLayerNoron = NumberT(1); VweightLayer10 = hiddenLayerNoron*InputElements; VweightLayer21 = hiddenLayerNoron*outputLayerNoron; Vbias = hiddenLayerNoron + outputLayerNoron; % Create a Pattern Recognition Network % net = patternnet(hiddenLayerNoron); net = feedforwardnet(hiddenLayerNoron); % The key subobjects of the network object are inputs, layers, outputs, biases, inputWeights and layerWeights % A neural network's training algorithm: 'traingd' ; 'traingda' ; 'traingdm' ; 'traingdx' ; 'traingdlm' ; net.trainFcn = 'traingd'; % Gradient descent backpropagation % Training performance function net.performFcn = 'mse'; % Mean squared normalized error performance function net.divideFcn = ''; % Turn off a feature that is introduced later (Training all samples) % net.divideFcn = 'dividerand'; % 'dividerand' ; 'divideblock' ; 'divideint' ; 'divideind' net.layers{1,1}.transferFcn = 'tansig'; % 'logsig' ; 'tansig' ; 'purelin' net.layers{2,1}.transferFcn = 'purelin'; % 'logsig' ; 'tansig' ; 'purelin' % Configure network inputs and outputs to best match input and target data net = configure(net, inputs, targets); % Indicate if network inputs and outputs are configured % [flag,inputFlags,outputFlags] = isconfigured(net); % Reinitialize all weights and biases % net = init(net); % Setting random values for weights and bias net = setwb(net,randn((VweightLayer10+VweightLayer21+Vbias),1)); 90 Luan van net.trainParam.epochs = bqEpochs; % Maximum number of epochs to train net.trainParam.goal = bqGoal; % 1e-5; net.trainParam.lr = bqLearningRate; % Learning rate % net.trainParam.showWindow = true; % net.trainParam.showCommandLine = true; net.trainParam.show = 10; % Epochs between displays (NaN for nodisplays) % View the layers subobject for the first layer layer1 = net.layers{1,1} % View the layers subobject for the second layer layer2 = net.layers{2,1} % View the inputWeights subobject for the weight between layer0 and layer1 inputWeights1 = net.inputWeights{1,1} % View the layerWeights subobject for the weight between layer1 and layer2 layerWeights1 = net.layerWeights{2,1} % Train the Network [net,tr] = train(net, inputs, targets); w10 = net.iw{1,1} w21 = net.lw{2,1} b1=net.b{1,1} b2=net.b{2,1} % Test outputs = net(inputs) errors = gsubtract(targets,outputs) % saves the specified variables to a MAT-file save(fullfile(pathnameMat,'weight.mat'),'w10','w21','b1','b2','out puts','errors'); StartTimer(); % Rusult test SampleT = [a;p;c;h;w;l;b;i;v;s;d;u]; Yout = net(SampleT); set(handles.txtOut1, 'String', Yout(1)); set(handles.txtOut2, 'String', Yout(2)); % Rusult if (Yout(1)>0.7) && (Yout(1)-0.3) && (Yout(1)0.7) && (Yout(2)-0.3) && (Yout(2)

Ngày đăng: 02/02/2023, 10:03

Tài liệu cùng người dùng

Tài liệu liên quan