识别手写数字,集成django web应用

识别手写数字,集成django web应用,第1张

概述识别手写数字,集成django web应用

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

# import the necessary packagesimport pandas as pdfrom sklearn.ensemble import RandomForestClassifIErfrom sklearn.linear_model import SGDClassifIErfrom sklearn.svm import linearSVCfrom sklearn.neighbors import KNeighborsClassifIErfrom sklearn.cross_valIDation import train_test_splitfrom sklearn.metrics import classification_reportfrom sklearn import datasetsfrom sklearn.decomposition import PCA as pcafrom nolearn.dbn import dbnfrom matplotlib import pyplotfrom PIL import Imageimport numpy as npimport scipySTANDARD_SIZE = (28,28)class DigitProphet(object):	def __init__(self):		# load train.csv		# train = pd.read_csv("data/train.csv")		# data_train=train.as_matrix()		# values_train=data_train[:,0]		# images_train=data_train[:,1:]		# trainX,_trainX,trainY,_trainY = train_test_split(images_train/255.,values_train,test_size=0.5)		# #load test.csv		# test = pd.read_csv("data/test.csv")		# data_test=test.as_matrix()		# testX,_testX = train_test_split(data_test/255.,test_size=0.99)				# Random Forest		# self.clf = RandomForestClassifIEr()				# stochastic GradIEnt Descent		# self.clf = SGDClassifIEr()				# Support Vector Machine		# self.clf = linearSVC()				# Nearest Neighbors		# self.clf = KNeighborsClassifIEr(n_neighbors=13)						train = pd.read_csv("data/train.csv")		data_train=train.as_matrix()		values_train=data_train[:,0]		images_train=data_train[:,1:]		trainX,test_size=0.995)				# Neural Network		self.clf = dbn([trainX.shape[1],300,10],learn_rates=0.3,learn_rate_decays=0.9,epochs=10,verbose = 1)				#Training		self.clf.fit(trainX,trainY)				pass	def predictimage(self,array):		image=np.atleast_2d(array)		return self.clf.predict(image)[0]def trim(image):	image_data = np.array(image)	image_data_bw = image_data.min(axis=2)	row_min = np.where(image_data_bw.min(axis=1)<255)[0].min()	row_max = np.where(image_data_bw.min(axis=1)<255)[0].max()	col_min = np.where(image_data_bw.min(axis=0)<255)[0].min()	col_max = np.where(image_data_bw.min(axis=0)<255)[0].max()	size=int((max(row_max-row_min,col_max-col_min))*1.3)	cropBox = (row_min,row_max,col_min,col_max)	image_data_new = image_data[cropBox[0]:cropBox[1]+1,cropBox[2]:cropBox[3]+1,:]	new_image = Image.fromarray(image_data_new)		img_w,img_h = new_image.size	background = Image.new('RGBA',(size,size),(255,255,255))	bg_w,bg_h = background.size	offset = ((bg_w-img_w)/2,(bg_h-img_h)/2)	background.paste(new_image,offset)	return backgrounddef getimgdata(filename):	img = Image.open(filename)	img=Alpha_to_color(img)	img = trim(img)	img = img.convert('L')	img = img.getdata()	img = img.resize(STANDARD_SIZE)	img = np.array(img)/255.	img = [1-i for i in img]	return img	def Alpha_to_color(image,color=(255,255)):    x = np.array(image)    r,g,b,a = np.rollaxis(x,axis=-1)    r[a == 0] = color[0]    g[a == 0] = color[1]    b[a == 0] = color[2]     x = np.dstack([r,a])    return Image.fromarray(x,'RGBA')		def saveImage(array,path='outfile.jpg'):	# Get the training data back to its original form.	matrix = np.reshape(array,(STANDARD_SIZE))	# Get the original pixel values.	matrix = matrix*255. 	# pyplot.imshow(sample,cmap = pyplot.cm.gray)	# result=predictimg(clf,image)	scipy.misc.imsave(path,matrix)		dp=DigitProphet()pointer=0def main():	# filename="imagetoSave.png"	# data=getimgdata(filename)	# saveImage(data)	# preds=dp.predictimage(data)	# print preds	pass		if __name__ == '__main__':	main()

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的识别手写数字,集成django web应用全部内容,希望文章能够帮你解决识别手写数字,集成django web应用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1199073.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存