IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> TensorFlow——实现时装分类问题 -> 正文阅读

[人工智能]TensorFlow——实现时装分类问题

题目描述

近期老师布置了一个作业,实现服装分类问题,数据集在来自zalando Research。算法主要通过预测一张图片中的服装种类。在时装数据集中,共有60000张时装图片,每张图片表示一个28*28的像素灰度矩阵,并有一个标签,时装种类一共有10种。

数据集

数据集在网站或者《机器学习算法导论》github网站上可以找到,为方便,我已经将数据集防止在此,可以免费下载使用。

地址:(审核通过后补充)

代码实现

首先需要将数据集放在和这个python一个文件夹下

import pandas as pd
import tensorflow as tf
from matplotlib import pyplot as plt
from sklearn.preprocessing import StandardScaler, MinMaxScaler, OneHotEncoder
tf = tf.compat.v1
tf.disable_v2_behavior()
from sklearn.model_selection import train_test_split
import numpy as np

def get_data():
    df=pd.read_csv("./fashion-mnist_train.csv")
    y=df['label'].values
    df.drop(['label'],1,inplace=True)
    X=df.values
    return X,y

def process_feature(X):
    scaler=StandardScaler()
    X=scaler.fit_transform(X)
    scaler=MinMaxScaler(feature_range=(-1,1))
    X=scaler.fit_transform(X)
    return X



n_hidden1 = 300
n_hidden2 = 100
n_input = 28 * 28
n_class = 10

X = tf.placeholder(tf.float32, shape=(None, n_input))
y = tf.placeholder(tf.float32, shape=None)
hidden1 = tf.layers.dense(X, n_hidden1, activation=tf.nn.relu)  # 第一层
hidden2 = tf.layers.dense(hidden1, n_hidden2, activation=tf.nn.relu)  # 第二层
outputs = tf.layers.dense(hidden2, n_class)  # 第三层,默认使用的是identity函数作为激活函数
cross_entropy = tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=outputs)  # 计算交叉熵
loss = tf.reduce_mean(cross_entropy)  # 交叉熵取平均值作为最终函数
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01)
train_op = optimizer.minimize(loss)  # 随机梯度下降算子
correct = tf.equal(tf.argmax(y, 1), tf.argmax(outputs, 1))
accuracy_score = tf.reduce_mean(tf.cast(correct, tf.float32))


with tf.Session() as sess:  # 计算图的开始
    tf.global_variables_initializer().run()
    X_data,y_data=get_data()
    encoder = OneHotEncoder()
    y_data = encoder.fit_transform(y_data.reshape(-1, 1)).toarray()
    X_train, X_test,y_train,y_test=train_test_split(X_data,y_data,test_size=0.5,random_state=0)
    X_train = process_feature(X_train)
    X_test = process_feature(X_test)

    for t in range(5000):  # 随机梯度下降算法
        i = np.random.randint(0, len(X_train))
        X_i = X_train[i].reshape(1, -1)
        y_i = y_train[i].reshape(1, -1)
        sess.run(train_op, feed_dict={X: X_i, y: y_i})
    accuracy = accuracy_score.eval(feed_dict={X: X_test, y: y_test})
    print("accuracy={}".format(accuracy))

一开始一直报错,折腾了挺久,结果通过和同学交流,发现是少了两句话

    encoder = OneHotEncoder()
    y_data = encoder.fit_transform(y_data.reshape(-1, 1)).toarray()

忘了将其编码了,多元分类问题记着一定要编码(画超大的重点)

错误提醒如下所示:

?最终运行结果如下:

?由于用的模型较低级,因此准确率并不高,还有待提升,共同学习,共同学习。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-05 20:20:08  更:2021-07-05 20:20:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/20 18:40:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码