Tensorflow分类车子模型

#-*- coding:utf-8 -*-

importnumpyasnp

importtensorflowastf

importmatplotlib.pyplotasplt

importtrain_Car_Data

importtime

data = train_Car_Data.load_Data(download=False)

new_Data = train_Car_Data.covert2onehot(data)

#准备好所有数据 训练集和测试集

new_Data = new_Data.values.astype(np.float32)#将oneshot转化为32位

np.random.shuffle(new_Data)#随机化数据

sep =int(0.7*len(new_Data))#提取出前70%的数据的下标

train_data = new_Data[:sep]

test_Data = new_Data[sep:]

#建立网络

tf_input = tf.placeholder(tf.float32,[None,25],"input")#第一个是行 第二个是列(有25列)

tfx = tf_input[:,:21]#打竖的行不要求,对打横的选21列

tfy = tf_input[:,21:]

l1 = tf.layers.dense(tfx,128,tf.nn.relu,name="l1")#第一个参数是数据 第二个是unit第三个是激励函数 第四个是名字 这是在设置隐藏层

l2 = tf.layers.dense(l1,128,tf.nn.relu,name="l2")#再设置一个隐藏层

out = tf.layers.dense(l2,4,name="l3")#输出层

prediction = tf.nn.softmax(out,name="pred")#先用激励函数softmax得到预期值 留到后面对比

loss = tf.losses.softmax_cross_entropy(onehot_labels=tfy,logits=out)#给标签 也就是y值 和x值来得到损失值

accuracy = tf.metrics.accuracy(# return (acc, update_op), and create 2 local var得到准确度

labels=tf.argmax(tfy,axis=1),predictions=tf.argmax(out,axis=1),

)[1]

opt = tf.train.GradientDescentOptimizer(learning_rate=0.1)#梯度下降

train_op = opt.minimize(loss)#最小化损失 让损失最小

sess = tf.Session()

sess.run(tf.group(tf.global_variables_initializer(),tf.local_variables_initializer()))

# plt.ion()

# fig , (ax1,ax2) = plt.subplots(1,2,figsize=(8,4))

# accuracies,steps = [], []

fortinrange(4000):

batch_index = np.random.randint(len(train_data),size=32)

sess.run(train_op,{tf_input:train_data[batch_index]})

ift %50==0:

acc_,pre_,loss_ = sess.run([accuracy,prediction,loss],{tf_input:test_Data})

# accuracies.append(acc_)

# steps.append(t)

print("Set: %i "% t,"| Accurate: %.2f"% acc_,"| Loss: %.2f"% loss_)

writer = tf.summary.FileWriter('./my_graph',sess.graph)

#        ax1.cla()

#

#        for c in range(4):

#            bp = ax1.bar(x=c+0.1,height=sum((np.argmax(pre_,axis=1) == c)),width=0.2,color='red')

#            bt = ax1.bar(x=c-0.1,height=sum((np.argmax(test_Data[:,21:],axis=1) == c)),width= 0.2,color='blue')

#        ax1.set_xticks(range(4),["accepted", "good", "unaccepted", "very good"])

#        ax1.legend(handles=[bp, bt], labels=["prediction", "target"])

#        ax1.set_ylim((0,400))

#        ax2.cla()

#        ax2.plot(steps,accuracies,label="accuracy")

#        ax2.set_ylim(ymax=1)

#        ax2.set_ylabel("accuracy")

#

#

# plt.ioff()

# plt.show()



输出


Set: 0 | Accurate: 0.69 | Loss: 1.22

Set: 50  | Accurate: 0.74 | Loss: 0.53

Set: 100  | Accurate: 0.78 | Loss: 0.39

Set: 150  | Accurate: 0.80 | Loss: 0.29

Set: 200  | Accurate: 0.82 | Loss: 0.25

Set: 250  | Accurate: 0.84 | Loss: 0.21

Set: 300  | Accurate: 0.85 | Loss: 0.17

Set: 350  | Accurate: 0.86 | Loss: 0.17

Set: 400  | Accurate: 0.87 | Loss: 0.14

Set: 450  | Accurate: 0.88 | Loss: 0.13

Set: 500  | Accurate: 0.89 | Loss: 0.11

Set: 550  | Accurate: 0.90 | Loss: 0.10

Set: 600  | Accurate: 0.90 | Loss: 0.10

Set: 650  | Accurate: 0.91 | Loss: 0.09

Set: 700  | Accurate: 0.91 | Loss: 0.08

Set: 750  | Accurate: 0.91 | Loss: 0.07

Set: 800  | Accurate: 0.92 | Loss: 0.06

Set: 850  | Accurate: 0.92 | Loss: 0.06

Set: 900  | Accurate: 0.93 | Loss: 0.06

Set: 950  | Accurate: 0.93 | Loss: 0.05

Set: 1000  | Accurate: 0.93 | Loss: 0.05

Set: 1050  | Accurate: 0.93 | Loss: 0.05

Set: 1100  | Accurate: 0.94 | Loss: 0.06

Set: 1150  | Accurate: 0.94 | Loss: 0.04

Set: 1200  | Accurate: 0.94 | Loss: 0.04

Set: 1250  | Accurate: 0.94 | Loss: 0.04

Set: 1300  | Accurate: 0.94 | Loss: 0.03

Set: 1350  | Accurate: 0.95 | Loss: 0.03

Set: 1400  | Accurate: 0.95 | Loss: 0.03

Set: 1450  | Accurate: 0.95 | Loss: 0.03

Set: 1500  | Accurate: 0.95 | Loss: 0.03

Set: 1550  | Accurate: 0.95 | Loss: 0.03

Set: 1600  | Accurate: 0.95 | Loss: 0.03

Set: 1650  | Accurate: 0.95 | Loss: 0.03

Set: 1700  | Accurate: 0.96 | Loss: 0.02

Set: 1750  | Accurate: 0.96 | Loss: 0.03

Set: 1800  | Accurate: 0.96 | Loss: 0.02

Set: 1850  | Accurate: 0.96 | Loss: 0.02

Set: 1900  | Accurate: 0.96 | Loss: 0.02

Set: 1950  | Accurate: 0.96 | Loss: 0.02

Set: 2000  | Accurate: 0.96 | Loss: 0.02

Set: 2050  | Accurate: 0.96 | Loss: 0.02

Set: 2100  | Accurate: 0.96 | Loss: 0.02

Set: 2150  | Accurate: 0.96 | Loss: 0.02

Set: 2200  | Accurate: 0.97 | Loss: 0.02

Set: 2250  | Accurate: 0.97 | Loss: 0.02

Set: 2300  | Accurate: 0.97 | Loss: 0.02

Set: 2350  | Accurate: 0.97 | Loss: 0.02

Set: 2400  | Accurate: 0.97 | Loss: 0.02

Set: 2450  | Accurate: 0.97 | Loss: 0.02

Set: 2500  | Accurate: 0.97 | Loss: 0.02

Set: 2550  | Accurate: 0.97 | Loss: 0.02

Set: 2600  | Accurate: 0.97 | Loss: 0.01

Set: 2650  | Accurate: 0.97 | Loss: 0.01

Set: 2700  | Accurate: 0.97 | Loss: 0.01

Set: 2750  | Accurate: 0.97 | Loss: 0.01

Set: 2800  | Accurate: 0.97 | Loss: 0.01

Set: 2850  | Accurate: 0.97 | Loss: 0.01

Set: 2900  | Accurate: 0.97 | Loss: 0.01

Set: 2950  | Accurate: 0.97 | Loss: 0.01

Set: 3000  | Accurate: 0.97 | Loss: 0.01

Set: 3050  | Accurate: 0.97 | Loss: 0.01

Set: 3100  | Accurate: 0.97 | Loss: 0.01

Set: 3150  | Accurate: 0.97 | Loss: 0.01

Set: 3200  | Accurate: 0.98 | Loss: 0.01

Set: 3250  | Accurate: 0.98 | Loss: 0.01

Set: 3300  | Accurate: 0.98 | Loss: 0.01

Set: 3350  | Accurate: 0.98 | Loss: 0.01

Set: 3400  | Accurate: 0.98 | Loss: 0.01

Set: 3450  | Accurate: 0.98 | Loss: 0.01

Set: 3500  | Accurate: 0.98 | Loss: 0.01

Set: 3550  | Accurate: 0.98 | Loss: 0.01

Set: 3600  | Accurate: 0.98 | Loss: 0.01

Set: 3650  | Accurate: 0.98 | Loss: 0.01

Set: 3700  | Accurate: 0.98 | Loss: 0.01

Set: 3750  | Accurate: 0.98 | Loss: 0.01

Set: 3800  | Accurate: 0.98 | Loss: 0.01

Set: 3850  | Accurate: 0.98 | Loss: 0.01

Set: 3900  | Accurate: 0.98 | Loss: 0.01

Set: 3950  | Accurate: 0.98 | Loss: 0.01

Process finished with exit code 0



可以发现准确度逐步增加,损失逐步减少

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 简单线性回归 import tensorflow as tf import numpy # 创造数据 x_dat...
    CAICAI0阅读 3,538评论 0 49
  • TF API数学计算tf...... :math(1)刚开始先给一个运行实例。tf是基于图(Graph)的计算系统...
    MachineLP阅读 3,432评论 0 1
  • 炎热的暑假,哪都没去,在姑姑的发廊帮姑姑打理发廊,生意一般般,不是很好,姑姑说到冷子,你哥哥刚刚打电话回来说,过...
    尦尦阅读 395评论 0 0
  • 有个人拿来一段出家人打架的视频,问:“都出家了,还打架?” 禅小胖听后,取来一支钢笔和一支白粉笔,又拿出一张白纸,...
    筏喻微集阅读 278评论 0 1
  • 我家在南方一座温暖小城,说起这地方,大人们会开玩笑说我们这就是卖阳光的。是的,哪怕是冬天最低温度也是十...
    沐若清阅读 320评论 2 3