创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
站在用户的角度思考问题,与客户深入沟通,找到三台网站设计与三台网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、做网站、企业官网、英文网站、手机端网站、网站推广、域名注册、网站空间、企业邮箱。业务覆盖三台地区。小编给大家分享一下关于keras训练模型fit和fit_generator的案例,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨方法吧!
第一种,fit
import keras from keras.models import Sequential from keras.layers import Dense import numpy as np from sklearn.preprocessing import LabelEncoder from sklearn.preprocessing import OneHotEncoder from sklearn.model_selection import train_test_split #读取数据 x_train = np.load("D:\\machineTest\\testmulPE_win7\\data_sprase.npy")[()] y_train = np.load("D:\\machineTest\\testmulPE_win7\\lable_sprase.npy") # 获取分类类别总数 classes = len(np.unique(y_train)) #对label进行one-hot编码,必须的 label_encoder = LabelEncoder() integer_encoded = label_encoder.fit_transform(y_train) onehot_encoder = OneHotEncoder(sparse=False) integer_encoded = integer_encoded.reshape(len(integer_encoded), 1) y_train = onehot_encoder.fit_transform(integer_encoded) #shuffle X_train, X_test, y_train, y_test = train_test_split(x_train, y_train, test_size=0.3, random_state=0) model = Sequential() model.add(Dense(units=1000, activation='relu', input_dim=784)) model.add(Dense(units=classes, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy']) model.fit(X_train, y_train, epochs=50, batch_size=128) score = model.evaluate(X_test, y_test, batch_size=128) # #fit参数详情 # keras.models.fit( # self, # x=None, #训练数据 # y=None, #训练数据label标签 # batch_size=None, #每经过多少个sample更新一次权重,defult 32 # epochs=1, #训练的轮数epochs # verbose=1, #0为不在标准输出流输出日志信息,1为输出进度条记录,2为每个epoch输出一行记录 # callbacks=None,#list,list中的元素为keras.callbacks.Callback对象,在训练过程中会调用list中的回调函数 # validation_split=0., #浮点数0-1,将训练集中的一部分比例作为验证集,然后下面的验证集validation_data将不会起到作用 # validation_data=None, #验证集 # shuffle=True, #布尔值和字符串,如果为布尔值,表示是否在每一次epoch训练前随机打乱输入样本的顺序,如果为"batch",为处理HDF5数据 # class_weight=None, #dict,分类问题的时候,有的类别可能需要额外关注,分错的时候给的惩罚会比较大,所以权重会调高,体现在损失函数上面 # sample_weight=None, #array,和输入样本对等长度,对输入的每个特征+个权值,如果是时序的数据,则采用(samples,sequence_length)的矩阵 # initial_epoch=0, #如果之前做了训练,则可以从指定的epoch开始训练 # steps_per_epoch=None, #将一个epoch分为多少个steps,也就是划分一个batch_size多大,比如steps_per_epoch=10,则就是将训练集分为10份,不能和batch_size共同使用 # validation_steps=None, #当steps_per_epoch被启用的时候才有用,验证集的batch_size # **kwargs #用于和后端交互 # ) # # 返回的是一个History对象,可以通过History.history来查看训练过程,loss值等等