123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- # -*- encoding:utf-8 -*-
- import numpy
- from tensorflow.keras.optimizers import SGD, Adam
- from keras.models import Sequential
- from keras.layers import Dense
- from keras.layers import Dropout
- from keras.layers import Flatten
- from keras.utils import np_utils
- from keras import backend as K
- from keras.utils import np_utils
- import numpy as np
- import random
- def read_data(path):
- with open(path) as f :
- lines=f.readlines()
- lines=random.sample(lines,int(len(lines)/10))
- lines=[eval(line.strip()) for line in lines]
- X,Y=zip(*lines)
- X=np.array(X)
- X=1.0*X/256
- X=X.reshape(-1,28*28)#784
- Y=np.array(Y)
- Y=np_utils.to_categorical(Y,num_classes)
- return X,Y
-
- num_classes=11
- train_x,train_y=read_data("train_data")
- train_x_10,train_y_10=read_data("train_data_10")#reject data
- train_x=np.concatenate((train_x,train_x_10))
- train_y=np.concatenate((train_y,train_y_10))
- model = Sequential()
- #input_shape=(输入长,输入宽,输入通道数)
- model.add(Dense(units=256,input_dim=28*28, activation='relu',use_bias=True))
- model.add(Dense(units=128,input_dim=256,activation='relu',use_bias=True))
- model.add(Dense(units=128,input_dim=256,activation='relu',use_bias=True))
- model.add(Dense(units=num_classes,input_dim=128,use_bias=True, activation='softmax'))
- # Compile model
- model.compile(loss='categorical_crossentropy', optimizer="adam", metrics=['accuracy'])
- model.fit(train_x, train_y, batch_size=50, epochs=10,shuffle=True)
- model.save("model")
|