Tensorflow笔记(云计算课堂作业)

Tensorflow笔记(云计算课堂作业)

一、简介

Tensorflow 的官网是这样介绍它的:

TensorFlow is an end-to-end open source platform for machine learning. It has a comprehensive, flexible ecosystem of tools, libraries and community resources that lets researchers push the state-of-the-art in ML and developers easily build and deploy ML powered applications.

简单理解,它是专门用来简化开发者和研究人员构建机器学习应用的一个开源平台,可以理解为是一个框架,我自己的理解就是,tensorflow提供的类似于神经网络脚手架的作用,能够让我们快速的构建出神经网络模型,当然它的作用肯定远不止这些,尤其是在它升级到2.0以后。

学习tensorflow的使用,当然是选择阅读官方文档了,同时也有中文社区,可以很轻松的入门。不过在此之前,最好了解一下什么是ML(machine learning),以及神经网络(netural network)的概念,同时也需要一定的数学基础,至少得知道回归问题是什么,以及一般的应用场景和解决方法。关于回归问题的定义可以自行百度了,这里简单说一下我的理解,对于一个(x,y),猜想y=ax+b,如何构建出y=ax+b就是回归问题。虽然很让人头大,但是全民AI你觉得我是在开玩笑么(手动狗头)。

Tensorflow笔记

深度学习笔记(回归问题、全连接、卷积)

此处重定向到官方文档开始安装(不得不说现在的tensorflow的安装过程简单到让人发指)

windows系统下直接pip install即可,没有玩过python的同学可能比较陌生,这里建议出门左转B站先学习一下python,毕竟目前大家做机器学习都是用python

二、安装

1、确保pip可以正常使用

2、使用官方文档的命令开始安装tensorflow2.0

pip install tensorflow==2.0.0-alpha0 

这里我使用的是清华大学的源,速度比较快,具体换源方法百度。

经过了几秒钟以后,安装结束,只要不出现红色,就代表安装成功,当然你还可以看done done done

至此,安装完成。

我们来验证一下:

打开我们的vscode,新建一个python脚本文件,导入tensorflow的包,看看有没有报错:

import tensorflow as tf
print('hello,my tensorflow')

导包成功!尝试一下深度学习的入门级demo,MINIST手写数据级,这个demo是一个简单的图片识别,对手写的0-9的数字进行识别,并且2.0的tensorflow对它的封装已经很到位了,所以可以用很短的代码实现:

##导入tensorflow包
import tensorflow as tf
# 声明数据级用tf自带的mnist手写数据集
mnist = tf.keras.datasets.mnist
# 加载数据
(x_train, y_train),(x_test, y_test) = mnist.load_data()
# 将待训练的图像数据缩放到0-1的范围
x_train, x_test = x_train / 255.0, x_test / 255.0
# 声明一个神经网络模型
model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])
'''
编译网络模型,需要一些设置 
optimizer:优化器
    Adam优化器:
        Adam优化器2014年12月,Kingma和Lei Ba两位学者提出了Adam优化器,结合AdaGrad和RMSProp两种优化算法的优点。
        对梯度的一阶矩估计(First Moment Estimation,即梯度的均值)和二阶矩估计
        (SecondMoment Estimation,即梯度的未中心化的方差)进行综合考虑,计算出更新步长。

loss:损失函数
    sparse_categorical_crossentropy:多类的对数损失函数,接受稀疏标签

metrics:度量标准   官方文档:https://tensorflow.google.cn/versions/r2.0/api_docs/python/tf/metrics/Accuracy
    Calculates how often predictions matches labels.
    For example, if y_trueis [1, 2, 3, 4] and y_predis [0, 2, 3, 4] 
    then the accuracy is 3/4 or 0.75. If the weights were specified as 
    [1, 1, 0, 0 ] then the accuracy would be 1/2 or 0.5.
'''
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# 官网解释:Trains the model for a fixed number of epochs (iterations on a dataset).
# 个人理解:就是把数据送入模型进行训练,并且指定训练时候的分组大小迭代次数之类的
## epoch:每组数据完成神经网络反馈过程的次数
## batch_size:每次数据需要分组送入网络,每组的大小
## iteration:迭代次数
model.fit(x_train, y_train, epochs=5)

# 训练完成后通过此方法来评估模型的泛化能力,通过测试数据集来计算准确率
model.evaluate(x_test, y_test)

代码写好了,我们就可以运行了,来几张图片;

co

从训练过程我们也可以看出:训练数据为60000张图片,测试数据为10000张图片,模型经过五次反复训练后(也就是说其实训练量是30W张图片),损失达到0.073,准确率达到了0.9776,经过测试数据的测试,最终准确率可以达到0.9772,可以说是相当高了。

当然了,以上就是一个单层的全连接神经网络,非常简单,tensorflow最大的作用就是极大的简化了网络模型的声明,使得真正的深度神经网络模型代码实现起来也可以非常简单,tensorflow实现卷积神经网络的案例看时间,时间不够就讲讲,够的话就不讲了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值