def printMatrix(): name = input( 'Input matrix\'s name to be printed. (Read from ".mtrx" file)\n>>>') raw = IO.RAWReader() raw.open(p.DATA_PATH + name + '.mtrx') matrix = IO.getAMatrix(raw) IO.printprettyMatrix(matrix)
def recoverNeuralNetwork(): name = input('Input NeuralNetwork\'s name to be recovered.\n>>>') nn = NeuralNetwork.DFF() nn.loadfromFile(name + '_backup') nn.Name = name IO.setValuetoConfigfile('setting.json', 'latestNN', nn.Name) return nn
def editBackproprogation(MyNeuralNetwork): speed = float(input('Input speed value.\n>>>')) # targeterr = input('Input target error value.\n>>>') IO.setValuetoConfigfile( p.SAVED_PATH + MyNeuralNetwork.Name + '_profile.json', 'LearningAlgorithm', 'BackPropagation') IO.setValuetoConfigfile( p.SAVED_PATH + MyNeuralNetwork.Name + '_profile.json', 'Speed', speed)
def feedNeuralNetwork(MyNeuralNetwork): # string = input('input "row(number of data amount)", "column(number of input layer\'s neuron size)"\n') # string = string + ' ' + input('And then input "elements" row after row.\n') string= '1 '+str(MyNeuralNetwork.LayerNeuronsCount[0])+' ' # Single set of data 1 * input size string = string+input('Input single data set.(split by space and press enter)\n') rawreader = IO.RAWReader() rawreader.openString(string) M = IO.getAMatrix(rawreader) IO.printprettyMatrix(MyNeuralNetwork.feed(M))
def createNeuralNetwork(): name = input('Input NeuralNetwork\'s name to be created.\n>>>') layerscount = int(input('Input "'+name+'" NeuralNetwork\'s layers count.\n>>>')) layerneuronscount = [] for layer in range(0, layerscount): layerneuronscount.append(int(input('Input layer('+str(layer+1)+'\\'+str(layerscount)+')\'s neurons count.\n>>>'))) nn = NeuralNetwork.DFF(layerscount, layerneuronscount, name) nn.savetoFile() IO.setValuetoConfigfile('setting.json', 'latestNN', nn.Name) return nn
def editAdam(MyNeuralNetwork): speed = float(input('Input speed value('+str(p.PROFILE_DEFAULT['Speed'])+').\n>>>')) beta1 = float(input('Input Beta1(decay rate)('+str(p.PROFILE_DEFAULT['Beta1'])+').\n>>>')) beta2 = float(input('Input Beta2(decay rate)('+str(p.PROFILE_DEFAULT['Beta2'])+').\n>>>')) # targeterr = input('Input target error value.\n>>>') IO.setValuetoConfigfile(p.SAVED_PATH+MyNeuralNetwork.Name+'_profile.json', 'LearningAlgorithm', 'Adam') IO.setValuetoConfigfile(p.SAVED_PATH+MyNeuralNetwork.Name+'_profile.json', 'Speed', speed) IO.setValuetoConfigfile(p.SAVED_PATH+MyNeuralNetwork.Name+'_profile.json', 'Beta1', beta1) IO.setValuetoConfigfile(p.SAVED_PATH+MyNeuralNetwork.Name+'_profile.json', 'Beta2', beta2) IO.setValuetoConfigfile(p.SAVED_PATH+MyNeuralNetwork.Name+'_profile.json', 'Epsilon', p.PROFILE_DEFAULT['Epsilon'])
def feedNeuralNetworkbymtrx(MyNeuralNetwork): name = input('Input .mtrx\'s file name.\n') rawreader = IO.RAWReader() rawreader.open(p.DATA_PATH + name + '.mtrx') M = IO.getAMatrix(rawreader) np.set_printoptions(threshold=np.nan) np.set_printoptions(precision=3) np.set_printoptions(suppress=False) IO.printprettyMatrix(MyNeuralNetwork.feed(M)) pass
def editRMSprop(MyNeuralNetwork): speed = float(input('Input speed value('+str(p.PROFILE_DEFAULT['Speed'])+').\n>>>')) decayrate = float(input('Input decay rate('+str(p.PROFILE_DEFAULT['DecayRate'])+').\n>>>')) # targeterr = input('Input target error value.\n>>>') IO.setValuetoConfigfile(p.SAVED_PATH+MyNeuralNetwork.Name+'_profile.json', 'LearningAlgorithm', 'RMSprop') IO.setValuetoConfigfile(p.SAVED_PATH+MyNeuralNetwork.Name+'_profile.json', 'Speed', speed) IO.setValuetoConfigfile(p.SAVED_PATH+MyNeuralNetwork.Name+'_profile.json', 'DecayRate', decayrate) IO.setValuetoConfigfile(p.SAVED_PATH+MyNeuralNetwork.Name+'_profile.json', 'Epsilon', p.PROFILE_DEFAULT['Epsilon'])
def savetoFile(self, Filename=''): if Filename == '': Filename = self.Name MyRAWWriter = IO.RAWWriter() MyRAWWriter.append(int(self.LayersCount)) for layer in range(0, self.LayersCount): MyRAWWriter.append(int(self.LayerNeuronsCount[layer])) # Save each layer's neurons count one by one MyRAWWriter.newline() for layer in range(0, self.LayersCount - 1): IO.writeAMatrix(self.Weight[layer], MyRAWWriter) # Save each layer's weight one by one for layer in range(0, self.LayersCount - 1): IO.writeAMatrix(self.Bias[layer], MyRAWWriter) # Save each layer's bias one by one MyRAWWriter.write(p.SAVED_PATH + Filename + '.node')
def loadLatestNeuralNetwork(): name = IO.getValuefromConfigfile('setting.json', 'latestNN') nn = NeuralNetwork.DFF() if name != None: nn.loadfromFile(name) else: print('No latest NeuralNetwork') return nn
def loadfromFile(self, Filename): try: MyRAWReader = IO.RAWReader() MyRAWReader.open(p.SAVED_PATH + Filename + '.node') self.Name = Filename self.LayersCount = int(MyRAWReader.pop()) self.LayerNeuronsCount = [] self.Weight = [] self.Bias = [] # Get the LayersCount first and Initlalize LayerNeuronsCount, Weight and Bias for layer in range(0, self.LayersCount): self.LayerNeuronsCount.append(int(MyRAWReader.pop())) # Get each layer's neurons count one by one for layer in range(0, self.LayersCount - 1): self.Weight.append(IO.getAMatrix(MyRAWReader)) # Get each layer's weight one by one for layer in range(0, self.LayersCount - 1): self.Bias.append(IO.getAMatrix(MyRAWReader)) # Get each layer's bias one by one except: print('warning: Loading ' + Filename + '.node error!')
def editNesterovMomentum(MyNeuralNetwork): speed = float(input('Input speed value.\n>>>')) momentumrate = float(input('Input momentum rate.\n>>>')) # targeterr = input('Input target error value.\n>>>') IO.setValuetoConfigfile(p.SAVED_PATH+MyNeuralNetwork.Name+'_profile.json', 'LearningAlgorithm', 'NesterovMomentum') IO.setValuetoConfigfile(p.SAVED_PATH+MyNeuralNetwork.Name+'_profile.json', 'Speed', speed) IO.setValuetoConfigfile(p.SAVED_PATH+MyNeuralNetwork.Name+'_profile.json', 'Momentum_Rate', momentumrate)
def editAdaGrad(MyNeuralNetwork): speed = float(input('Input speed value.\n>>>')) # targeterr = input('Input target error value.\n>>>') IO.setValuetoConfigfile( p.SAVED_PATH + MyNeuralNetwork.Name + '_profile.json', 'LearningAlgorithm', 'AdaGrad') IO.setValuetoConfigfile( p.SAVED_PATH + MyNeuralNetwork.Name + '_profile.json', 'Speed', speed) IO.setValuetoConfigfile( p.SAVED_PATH + MyNeuralNetwork.Name + '_profile.json', 'Epsilon', p.PROFILE_DEFAULT['Epsilon'])
def trainNeuralNetwork(MyNeuralNetwork): error = float(input('Input target error(0.1)\n>>>')) epochs = int(input('Input max epochs(-1)\n>>>')) print('Getting Datas...') Datas = IO.getDatas() print('Datas getted') if IO.getProfile(MyNeuralNetwork) == None: print('You must have training profile first!') editNeuralNetworkProfile(MyNeuralNetwork) Profile = IO.getProfile(MyNeuralNetwork) # Get Input/OutputData to matrix if IO.getValuefromConfigfile('setting.json', 'Verbose') != None: verbose = int(IO.getValuefromConfigfile('setting.json', 'Verbose')) else: verbose = p.VERBOSE_DEFAULT if IO.getValuefromConfigfile('setting.json', 'Loop_per_N_times') != None: loop = int(IO.getValuefromConfigfile('setting.json', 'Loop_per_N_times')) else: loop = p.VERBOSE_PER_LOOP_DEFAULT # Setting from config file TrainingType.trainbyBatch(MyNeuralNetwork, Datas, error, epochs, Profile, verbose, loop)
def setValuetoConfigfile(): listConfigfileValues() name = input('Name Code:\n>>>') value = input('Value:\n>>>') IO.setValuetoConfigfile('setting.json', ConfigDict[str(name)], value)
def idx2mtrx(): FilenameIn = input('Input input IDX file name\n') FilenameOut = input('Input output mtrx filename.\n') IO.idx2mtrx(FilenameIn, FilenameOut)
def listConfigfileValues(): print('Config list:') print('[v] Verbose Level. -> ' + str(IO.getValuefromConfigfile('setting.json', 'Verbose'))) print('[n] Verbose per "N" times. -> ' + str(IO.getValuefromConfigfile('setting.json', 'Loop_per_N_times')))
def getLatestNeuralNetworkName(): return IO.getValuefromConfigfile('setting.json', 'latestNN')
def loadNeuralNetwork(): name = input('Input NeuralNetwork\'s name to be loaded.\n>>>') nn = NeuralNetwork.DFF() nn.loadfromFile(name) IO.setValuetoConfigfile('setting.json', 'latestNN', nn.Name) return nn
def editTest1(MyNeuralNetwork): # targeterr = input('Input target error value.\n>>>') IO.setValuetoConfigfile( p.SAVED_PATH + MyNeuralNetwork.Name + '_profile.json', 'LearningAlgorithm', 'Test1')
def printNeuralNetworkProfile(MyNeuralNetwork): print(MyNeuralNetwork.Name + ' neuralnet\'s training profile:') print(IO.getProfile(MyNeuralNetwork))