原有的手动搭建的神经网络,无法保存训练后的权重值,导致每次运行的时候都要重新训练一次,要耗费很多时间,那怎么样来保存训练后的权重呢?
数据的保存最好的方法就是写入到文件中去,我的方法就是在神经网络训练完后将权重值写到文件中去,下一次运行程序的时候判断一下这个文件是否存在,如果存在就直接将它的值赋给权重变量,如果不存在就按正常流程来进行训练然后得到权重值。代码如下:
这是我在上一篇文章里面代码基础上改进的
# -*- coding: utf-8 -*-
"""
Spyder Editor
This is a neuralNetwork script file.
"""
import numpy
import scipy.special
import matplotlib.pyplot
import os
class neuralNetwork:
def __init__(self,inputnodes,hiddennodes,outputnodes,learninggrade):
#定义变量
self.inodes=inputnodes
self.hnodes=hiddennodes
self.onodes=outputnodes
self.lg=learninggrade
#创建权重矩阵
self.wih=(numpy.random.rand(self.hnodes,self.inodes)-0.5)
self.who=(numpy.random.rand(self.onodes,self.hnodes)-0.5)
if os.path.exists("C:/Users/user/Desktop/datas/json_who.txt"):#判断文件是否存在
self.who=numpy.loadtxt("C:/Users/user/Desktop/datas/json_who.txt")
else:
pass
if os.path.exists('C:/Users/user/Desktop/datas/json_wih.txt'):
self.wih=numpy.loadtxt('C:/Users/user/Deskt