import os os.environ['CUDA_VISIBLE_DEVICES']='-1' from tensorflow.keras import layers,losses,optimizers,activations,metrics,utils#utils工具箱,里边有好多工具,独热就在里边 import numpy as np from sklearn.model_selection import train_test_split from tensorflow.keras.models import Sequential import matplotlib.pyplot as plt # (1)数据处理 # ①读取data-04-zoo.csv文件 np.loadtxt # ②数据按照float类型处理 data=np.loadtxt('./data-04-zoo.csv',delimiter=',',dtype=np.float32) x=data[:,:-1] y=data[:,-1:] # ⑤对y标签进行独热处理 tensorflow.keras.utils.to_cate #y=utils.to_categorical(y,num_classes=7)#num_classe表示有多少类 train_x,test_x,train_y,test_y=train_test_split(x,y ,test_size=0.3,shuffle=True)#shuffle是洗牌 # (2)模型处理 # ①创建模型 Sequential model=Sequential() # ②根据分类情况,设置网络,使用合理激活函数 layers.Dense layers.Activition # 添加隐藏层和输出层,要求两层隐藏Dense层神经元个数分别为 14,10,激活函数relu,输出层激活函数softmax model.add(layers.Dense(12,input_dim=16,activation='relu')) model.add(layers.Dense(8,activation=activations.relu)) model.add(layers.Dense(7,activation=activations.softmax)) # ③编译模型,使用合理的优化器、代价函数及评估指标 optimizers losses metrics # model.compile(optimizer=optimizers.Adam(),loss=losses.categorical_crossentropy,metrics='acc') model.compile(optimizer=optimizers.Adam(),loss=losses.sparse_categorical_crossentropy,metrics='acc') # ④训练模型400次 fit train_log=model.fit(train_x,train_y,epochs=400) print("训练历史日志-损失值:", train_log.history['loss']) print("训练历史日志-准确率:", train_log.history['acc']) # 模型最终的损失值和准确率 loss,acc=model.evaluate(test_x,test_y) print('Loss:',loss,'acc:',acc) loss_list=train_log.history['loss'] plt.plot(loss_list) plt.show()
tensorflow2.x处理多分类问题模板
最新推荐文章于 2024-03-22 09:33:46 发布