资源简介
前端用画布手写,后台传送到服务器,简单的神经网络手写识别。前端用画布手写,后台传送到服务器,简单的神经网络手写识别。前端用画布手写,后台传送到服务器,简单的神经网络手写识别。前端用画布手写,后台传送到服务器,简单的神经网络手写识别。前端用画布手写,后台传送到服务器,简单的神经网络手写识别。前端用画布手写,后台传送到服务器,简单的神经网络手写识别。前端用画布手写,后台传送到服务器,简单的神经网络手写识别。前端用画布手写,后台传送到服务器,简单的神经网络手写识别。前端用画布手写,后台传送到服务器,简单的神经网络手写识别。前端用画布手写,后台传送到服务器,简单的神经网络手写识别。

代码片段和文件信息
import csv
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np
import math
import random
import os
import json
from numpy import matrix
from math import pow
from collections import namedtuple
class HCRNN:
LEARNING_RATE = 0.1
WIDTH_IN_PIXELS = 20
NN_FILE_PATH = ‘./nn.json‘
def __init__(self num_hidden_nodes data_matrix data_labels training_indices use_file=True):
self.sigmoid = np.vectorize(self._sigmoid_scalar)
self.sigmoid_prime = np.vectorize(self._sigmoid_prime_scalar)
self._use_file = use_file
self.data_matrix = data_matrix
self.data_labels = data_labels
if (not os.path.isfile(HCRNN.NN_FILE_PATH) or not use_file):
#初始化权重偏置
self.theta1 = self._rand_initialize_weights(400 num_hidden_nodes)
self.theta2 = self._rand_initialize_weights(num_hidden_nodes 10)
self.input_layer_bias = self._rand_initialize_weights(1 num_hidden_nodes)
self.hidden_layer_bias = self._rand_initialize_weights(1 10)
#开始训练
TrainData = namedtuple(‘TrainData‘ [‘y0‘ ‘label‘])
self.train([TrainData(self.data_matrix[i] int(self.data_labels[i])) for i in training_indices])
self.save()
else:
self._load()
def _rand_initialize_weights(self size_in size_out):
return [((x * 0.12) - 0.06) for x in np.random.rand(size_out size_in)]
#s激励函数
def _sigmoid_scalar(self z):
return 1 / (1 + math.e ** -z)
def _sigmoid_prime_scalar(self z):
return self.sigmoid(z) * (1 - self.sigmoid(z))
def train(self training_data_array):
for data in training_data_array:
#前向传播
y1 = np.dot(np.mat(self.theta1) np.mat(data[‘y0‘]).T)
#添加偏置
sum1 = y1 + np.mat(self.input_layer_bias)
y1 = self.sigmoid(sum1)
y2 = np.dot(np.array(self.theta2) y1)
#添加偏置
y2 = np.add(y2 self.hidden_layer_bias)
y2 = self.sigmoid(y2)
#反向传播
actual_vals = [0] * 10
actual_vals[data[‘label‘]] = 1
output_errors = np.mat(actual_vals).T - np.mat(y2)
hidden_errors = np.multiply(np.dot(np.mat(self.theta2).T output_errors) self.sigmoid_prime(sum1))
#更新权重
self.theta1 += self.LEARNING_RATE * np.dot(np.mat(hidden_errors) np.mat(data[‘y0‘]))
self.theta2 += self.LEARNING_RATE * np.dot(np.mat(output_errors) np.mat(y1).T)
self.hidden_layer_bias += self.LEARNING_RATE * output_errors
self.input_layer_bias += self.LEARNING_RATE * hidden_errors
def predict(self test):
y1 = np.dot(np.mat(self.theta1) np.mat(test).T)
y1 = y1 + np.mat(self.input_layer_bias)
y1 = self.sigmoid(y1)
y2 = np.dot(np.array(self.theta2) y1)
y2 = np.add(y2 self.hidden_layer_bias)
y2 = self.sigmoi
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 410 2018-06-18 02:00 HandWritingCharRecognition\.vscode\launch.json
文件 26337792 2017-02-11 13:21 HandWritingCharRecognition\data.csv
文件 10000 2017-02-11 13:21 HandWritingCharRecognition\dataLabels.csv
文件 129 2018-06-18 02:04 HandWritingCharRecognition\hcr.css
文件 741 2018-06-18 02:03 HandWritingCharRecognition\HCR.html
文件 4266 2018-06-18 01:23 HandWritingCharRecognition\Hcr.js
文件 4026 2018-06-18 01:53 HandWritingCharRecognition\hcr.py
文件 132685 2018-06-18 01:54 HandWritingCharRecognition\nn.json
文件 1090 2018-06-18 02:11 HandWritingCharRecognition\nnnodechoice.py
文件 1699 2018-06-18 02:10 HandWritingCharRecognition\Server.py
文件 4303 2018-06-18 01:53 HandWritingCharRecognition\__pycache__\hcr.cpython-36.pyc
目录 0 2018-06-18 02:14 HandWritingCharRecognition\.vscode
目录 0 2018-06-18 02:14 HandWritingCharRecognition\__pycache__
目录 0 2018-06-18 02:14 HandWritingCharRecognition
----------- --------- ---------- ----- ----
26497141 14
相关资源
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- Python中Numpy库最新教程
- 用python编写的移动彩信的发送程序
- Python全栈学习笔记面向对象大作业:
- python实现的ftp自动上传、下载脚本
- Python版的A*寻路算法
- IronPython IDE
- Gauss-Bonnet AdS黑洞的参数相变
- Synthesis Characterization and in vitro Antitu
- 在sNN = 200 GeV时Au + Au碰撞和在sNN = 19
- 在sNN = 200 GeV时与横向极化质子束发生
- 在sNN = 200 GeV极化p + A碰撞中产生正中
- 在sNN = 200GeV的Cu + Au碰撞中产生π0和
- 在sNN = 200 GeV极化p + p,p + Al和p + Au碰
- sNN = 200GeV质子核碰撞中二面角角相关
- sNN = 200GeV时Cu + Cu碰撞中的低动量直接
- 在sNN = 5.02 TeV时Pb-Pb碰撞中带电粒子的
- 由s = 7 $$ \\ sqrt {\\ mathrm {s}} = 7 $$ TeV
- 与ATLAS探测器在sNN = 5.02 TeV质子-铅碰撞
- 在sNN = 5.02TeV的pPb碰撞中测量包容性射
- 用ATLAS测量在$$ \\ sqrt {s _ {\\ mathrm {N
- sNN = 5.02 TeV时,p-Pb碰撞中带电射流产
- 在sNN = 5.02 TeV的pPb碰撞中的魅力射流截
- 带电粒子的横向动量高达100 GeV / c在
- 在sNN = 5.02 TeV的pPb碰撞中包含b射流的
- 使用分离的光子标记射流观察sNN = 5
- LOM网卡驱动:Intel(R) Ethernet Connecti
- SunnyUI.Net
- smart和labview通讯(smart_connet.vi)
- 具有Λ项的Einstein–Gauss&ndash
评论
共有 条评论