全连接神经网络FCNN

Tensorflow 2.0

import warnings
import seaborn as sns
import pandas as pd
import tensorflow as tf
import matplotlib.pyplot as plt
from tensorflow import keras
from tensorflow.keras import layers, optimizers, datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
warnings.filterwarnings('ignore')
%matplotlib inline
# Min-Max Normalization
def min_max_normalization(x, y):x = tf.cast(x, tf.float32)/255.0y = tf.cast(y, tf.int64)return x, y# https://www.kaggle.com/c/digit-recognizer/data
def load_data(path):data = pd.read_csv(path)data_x = data.drop(['label'], axis=1).valuesdata_y = data.label.valuestrain_x, valid_x, train_y, valid_y = train_test_split(data_x, data_y, test_size=100)# 切分传入Tensor的第一个维度,生成相应的datasettrain_ds = tf.data.Dataset.from_tensor_slices((train_x, train_y))#valid_ds = tf.data.Dataset.from_tensor_slices((valid_x, valid_y))valid_x = valid_x/255.0valid_ds = (valid_x, valid_y)train_ds = train_ds.map(min_max_normalization)train_ds = train_ds.take(10000).shuffle(10000).batch(1000)return train_ds, valid_ds# softmax cross entropy
def loss_function(labels, pred_proba):loss = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=labels, logits=pred_proba)return tf.reduce_mean(loss)def compute_accuracy(pred_proba, labels):predictions = tf.argmax(pred_proba, axis=1)return tf.reduce_mean(tf.cast(tf.equal(predictions, labels), tf.float32))
def train(epoch):model = keras.Sequential([layers.Dense(128, activation='relu'),layers.Dense(128, activation='relu'),layers.Dense(10)])optimizer = optimizers.Adam()trainloss_list = []    # every step losstrainaccuracy_list = []validaccuracy_list = []train_ds, valid_ds = load_data('../DataSet/mnist_csv/train.csv')for i in range(epoch):for step,(x, y) in enumerate(train_ds):with tf.GradientTape() as gdt:pred_proba = model(x)predictions = tf.argmax(pred_proba, axis=1)valid_preds = tf.argmax(model(valid_ds[0]), axis=1)tloss_ = loss_function(y, pred_proba)taccuracy_ = accuracy_score(y, predictions)vaccuracy_ = accuracy_score(valid_ds[1], valid_preds)trainloss_list.append(tloss_)trainaccuracy_list.append(taccuracy_)validaccuracy_list.append(vaccuracy_)# compute gradientgrads = gdt.gradient(tloss_, model.trainable_variables)# update weightsoptimizer.apply_gradients(zip(grads, model.trainable_variables))if step%1000==0:print('Train loss is : %f, Train accuracy is : %f, Valid accuracy is : %f'%(tloss_, taccuracy_, vaccuracy_))cfm = confusion_matrix(valid_ds[1], tf.argmax(model(valid_ds[0]), axis=1))return trainloss_list, trainaccuracy_list, validaccuracy_list, cfm
def main():tloss, taccu, vaccu, cfm = train(20)plt.figure(figsize=(20, 11))plt.subplot(2, 2, 1)plt.title('Train loss & accuracy')plt.plot(tloss, label='loss')plt.plot(taccu, label='accuracy')plt.grid(axis='y')plt.legend()plt.subplot(2, 2, 2)plt.title('Train valid accuracy')plt.plot(taccu, label='Train')plt.plot(vaccu, label='Valid')plt.legend()plt.grid(axis='y')plt.subplot(2, 2, 3)plt.title('Confusion matrix')sns.heatmap(cfm)plt.subplot(2, 2, 4)plt.title('Tensorflow 2.0')plt.imshow(tf_pic)plt.grid()
if __name__ == '__main__':main()
Train loss is : 2.306837, Train accuracy is : 0.057000, Valid accuracy is : 0.080000
Train loss is : 1.265308, Train accuracy is : 0.763000, Valid accuracy is : 0.710000
Train loss is : 0.618489, Train accuracy is : 0.846000, Valid accuracy is : 0.770000
Train loss is : 0.425268, Train accuracy is : 0.870000, Valid accuracy is : 0.870000
Train loss is : 0.340226, Train accuracy is : 0.896000, Valid accuracy is : 0.870000
Train loss is : 0.288782, Train accuracy is : 0.915000, Valid accuracy is : 0.880000
Train loss is : 0.255068, Train accuracy is : 0.922000, Valid accuracy is : 0.920000
Train loss is : 0.234775, Train accuracy is : 0.930000, Valid accuracy is : 0.940000
Train loss is : 0.219541, Train accuracy is : 0.937000, Valid accuracy is : 0.940000
Train loss is : 0.195807, Train accuracy is : 0.941000, Valid accuracy is : 0.940000
Train loss is : 0.174473, Train accuracy is : 0.958000, Valid accuracy is : 0.940000
Train loss is : 0.160328, Train accuracy is : 0.963000, Valid accuracy is : 0.940000
Train loss is : 0.148957, Train accuracy is : 0.966000, Valid accuracy is : 0.940000
Train loss is : 0.138590, Train accuracy is : 0.965000, Valid accuracy is : 0.940000
Train loss is : 0.129336, Train accuracy is : 0.968000, Valid accuracy is : 0.950000
Train loss is : 0.120952, Train accuracy is : 0.968000, Valid accuracy is : 0.950000
Train loss is : 0.113196, Train accuracy is : 0.970000, Valid accuracy is : 0.950000
Train loss is : 0.106510, Train accuracy is : 0.971000, Valid accuracy is : 0.950000
Train loss is : 0.099868, Train accuracy is : 0.973000, Valid accuracy is : 0.950000
Train loss is : 0.093243, Train accuracy is : 0.975000, Valid accuracy is : 0.950000

Tensorflow 2.0 : FCNN相关推荐

  1. 请注意更新TensorFlow 2.0的旧代码

    TensorFlow 2.0 将包含许多 API 变更,例如,对参数进行重新排序.重新命名符号和更改参数的默认值.手动执行所有这些变更不仅枯燥乏味,而且容易出错.为简化变更过程并让您尽可能顺畅地过渡到 ...

  2. 独家 | TensorFlow 2.0将把Eager Execution变为默认执行模式,你该转向动态计算图了...

    机器之心报道 作者:邱陆陆 8 月中旬,谷歌大脑成员 Martin Wicke 在一封公开邮件中宣布,新版本开源框架--TensorFlow 2.0 预览版将在年底之前正式发布.今日,在上海谷歌开发者 ...

  3. 资料分享:推荐一本《简单粗暴TensorFlow 2.0》开源电子书!

    背景 本开源电子书是一篇精简的 TensorFlow 2.0 入门指导,基于 TensorFlow 的 Eager Execution(动态图)模式,力图让具备一定机器学习及 Python 基础的开发 ...

  4. 简单粗暴上手TensorFlow 2.0,北大学霸力作,必须人手一册!

    (图片付费下载自视觉中国) 整理 | 夕颜 出品 | AI科技大本营(ID:rgznai100) [导读] TensorFlow 2.0 于近期正式发布后,立即受到学术界与科研界的广泛关注与好评.此前 ...

  5. TensorFlow 2.0来了,为什么他却说“深度学习框架之争,现在谈结果为时尚早”?...

    记者 | 琥珀 出品 | AI科技大本营(ID:rgznai100) 半个多世纪前,浙江大学老校长竺可桢曾有两个非常经典的教育问题:"诸位在校,有两个问题应该自己问问,第一,到浙大来做什么? ...

  6. 掌声送给TensorFlow 2.0!用Keras搭建一个CNN | 入门教程

    作者 | Himanshu Rawlani 译者 | Monanfei,责编 | 琥珀 出品 | AI科技大本营(id:rgznai100) 2019 年 3 月 6 日,谷歌在 TensorFlow ...

  7. 我们期待的TensorFlow 2.0还有哪些变化?

    来源 | Google TensorFlow 团队 为提高 TensorFlow 的工作效率,TensorFlow 2.0 进行了多项更改,包括删除了多余的 API,使API 更加一致统一,例如统一的 ...

  8. TensorFlow 2.0新特性解读,Keras API成核心

    来源 | Google TensorFlow 团队 2018 年 11 月,TensorFlow 迎来了它的 3 岁生日,我们回顾了几年来它增加的功能,进而对另一个重要里程碑 TensorFlow 2 ...

  9. TensorFlow 2.0开发者预览版发布

    整理 | Jane 出品 | AI科技大本营 从去年 8 月 Google 公开发布消息正在研发 TensorFlow 2.0 ,让我们在 12 月 提前看到了一些 高级 API 的变化,今天我们终于 ...

  10. TensorFlow 2.0发布在即,高级API变化抢先看

    作者 | Sandeep Gupta, Josh Gordon, and Karmel Allison 整理 | 非主流.Jane 出品 | AI科技大本营 [导语]早在今年 8 月的时候,谷歌开源战 ...

最新文章

  1. 企业架构的过去、现在与未来
  2. java生成二维码读取二维码,面试真题解析
  3. OpenShift 4 - 关闭更新MachineConfig后集群节点自动重启功能
  4. wps怎么做时间线_时间不够用怎么办?如何做才会更高效
  5. 华为 FusionData 发布,大数据痛点消失不见!
  6. 单元测试总结反思_我的2019反思与总结
  7. Mac很好用的音乐转换器:NoteBurner Spotify Music Converter mac
  8. atitit. java queue 队列体系and自定义基于数据库的队列总结o7t
  9. SVM多分类问题例子+matlab代码
  10. H5网页去除苹果手机底部白边
  11. 愤怒!竟然还有学校还在教 Java 的 Swing
  12. http://msdn.itellyou.cn/
  13. html5 手机uc浏览器 复制链接,清除UC手机浏览器强制在页面中加入的关键词链接...
  14. Class文件格式总结
  15. [转帖]彩色硬盘 关于西数硬盘 企业盘、黑盘、蓝盘、绿盘、红盘的区别
  16. 【分布式事务】内容较多CAP/BASE/2PC/3PC/TCC/Sega等等等等~,一次性捋清楚
  17. package.json中安装包的版本说明和符号说明
  18. Google搜索设置在新标签页打开的方法
  19. 《秋波媚·七月十六日晚登高兴亭望长安南山》 陆游
  20. 中小企业存储集群系统建设方案

热门文章

  1. 中晋最新消息2020年_最新消息!洛阳市第一高级中学发布2020年招生简章
  2. IDEA拉取GitLab代码出现Git Pull failed remote: HTTP Basic: Access denied
  3. Spring中IOC容器概念
  4. 安装maven过程并配置IDEA的全过程
  5. JWT、OAuth 2.0、session 用户授权实战
  6. 阿里架构10年,头条开发2年,我终于写出了一套Java核心知识点!
  7. ELK 企业内部日志分析系统
  8. linux centos挂载数据盘教程
  9. MFC 盾webBrowser打开弹出的页面
  10. 关于#pragma warning 用法的研究