使用tf.keras实现 独热编码 categorical_crossentropy

在这里插入图片描述

数据集还是Fashion minist 数据集。
什么是独热编码??#就是标志的这个位置时,就会变为1,其他的都会变成0。

import tensorflow as tf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

(train_image,train_lable),(test_image,test_lable)=tf.keras.datasets.fashion_mnist.load_data()

print('train原始数据集:\n',train_lable,'\r\n')
#
train_lable_onehot=tf.keras.utils.to_categorical(train_lable)  #把顺序编码转换为独热编码
print('train原始数据集-独热编码的转换结果:\n',train_lable_onehot,'\r\n')
#-------------------------------------------------------------------------------#
print('test原始数据集:\n',test_lable,'\r\n')
#再将test数据集作为独热编码
test_lable_onehot=tf.keras.utils.to_categorical(test_lable)
print('test原始数据集-独热编码的转换结果:\n',test_lable_onehot,'\r\n')

#归一化操作:
train_image=train_image/255
test_image=test_image/255
#建立model
model=tf.keras.Sequential()
model.add(tf.keras.layers.Flatten(input_shape=(28,28)))#第一层是一个Flatten层 #28*28
model.add(tf.keras.layers.Dense(128,activation='relu')) #第二个层就不用写input_shape了
model.add(tf.keras.layers.Dense(10,activation='softmax'))#第三层要输出10个概率值,表明可能是哪一种图片 #那么如何把一个输出变成一个概率值呢?使用softmax激活

#编译model
model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['acc']
              )

#训练
print('训练:\r\n')
model.fit(train_image,train_lable_onehot,epochs=5)


print('test_image.shape \r\n',test_image.shape,'\r\n')

#预测predict
predict=model.predict(test_image)
print('predict.shape \r\n',predict.shape,'\r\n')

print('predict[0] \r\n',predict[0],'\r\n')
print('np.argmax(predict[0]) \r\n',np.argmax(predict[0]),'\r\n')


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值