Tensorflow2.0深度学习入门与实战(学习总结1)
我是刚学的,网易云课堂跟着日月光华老师,现在对每节课的学习课程做一下记录,总结,仅仅作为总结。
1.使用快捷键 shift+enter执行代码
2.使用shift+tab查看代码的使用注释
3.IN[*]表示还在执行代码
4.损失函数用均方误差(f(x)-y)^2来表示,是为了消除数据相减后有正有负的情况。
5.
none代表输入样本的维度,比如输入100个数据,none为100,这个参数在建立模型的时候不需要考虑;代表着100个维度为1的数据输入进去;第二个参数1代表输出的维度是1;
dense层实现的ax+b的输出;
import tensorflow as tf
import是python提供的用于导入模块的机制,导入是的整个模块的内容。
- 用于引入一个模块的同时为该模块取一个别名。
- 使用语法:import multiprocessing as mp 表示引入multiprocessing模块并取别 名为mp,在该文件的后续调用中mp就相当于是multiprocessing。
from tensorflow import keras
- 用于导入一个模块中的某一个部分,比如一个函数或者一个类等。
- 使用语法:from os import path 表示引入os模块中的path
- Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK 和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化
- tf.keras 可以运行任何keras兼容的代码
import pandas as pd
data=pd.read_csv('./Desktop/dataset/Income1.csv')
读取CSV(逗号分割)文件到DataFrame
data
import matplotlib.pyplot as plt
Matplotlib是Python的一个绘图库,是Python中最常用的可视化工具之一,可以非常方便地创建2D图表和一些基本的3D图表。
Matplotlib是Python的绘图库,其中的pyplot包封装了很多画图的函数。
Matplotlib.pyplot 包含一系列类似 MATLAB 中绘图函数的相关函数。每个 Matplotlib.pyplot 中的函数会对当前的图像进行一些修改,例如:产生新的图像,在图像中产生新的绘图区域,在绘图区域中画线,给绘图加上标记,等等…… Matplotlib.pyplot 会自动记住当前的图像和绘图区域,因此这些函数会直接作用在当前的图像上。
%matplotlib inline
使用%matplotlib命令可以将matplotlib的图表直接嵌入到Notebook之中,或者使用指定的界面库显示图表,它有一个参数指定matplotlib图表的显示方式。inline表示将图表嵌入到Notebook中。
Python提供了许多魔法命令,魔法命令都以%或者%%开头,以%开头的成为行命令,%%开头的称为单元命令。行命令只对命令所在的行有效,而单元命令则必须出现在单元的第一行,对整个单元的代码进行处理。
plt.scatter(data.Education,data.Income)
绘制散点图,函数的原型:
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, *, data=None, **kwargs)
参数的解释:
x,y:表示的是大小为(n,)的数组,也就是我们即将绘制散点图的数据点
x=data.Education
y=data.Income
model=tf.keras.Sequential()
Keras有两种类型的模型,tf.keras.Sequential 和 函数式模型(Model)
model.add(tf.keras.layers.Dense(1,input_shape=(1,)))
通过 .add() 方法一个个的将layer加入模型中
https://keras-cn.readthedocs.io/en/latest/getting_started/sequential_model/
model.summary()
model.compile(optimizer='adam',
loss='mse'
)
mean_squared_error
顾名思义,意为均方误差,也称标准差,缩写为MSE,可以反映一个数据集的离散程度。
标准误差定义为各测量值误差的平方和的平均值的平方根,故又称为均方误差。
公式:
Adam 这个名字来源于自适应矩估计(Adaptive Moment Estimation),也是梯度下降算法的一种变形,但是每次迭代参数的学习率都有一定的范围,不会因为梯度很大而导致学习率(步长)也变得很大,参数的值相对比较稳定。
Adam 算法利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。TensorFlow提供的tf.train.AdamOptimizer可控制学习速度,经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。
可能你会有疑问,什么是优化器(Optimizer)?
很简单~就是模型训练的指导教练,能告诉模型权值该怎么调整,调整多大量,最终目标是让模型权值 theta 调整到最优,使得代价函数 f(theta) 最小。在所有优化算法中,基于梯度(Gradient)的算法最为常用,即首先计算 f(theta) 对 theta 的梯度 d(theta),theta 沿着梯度下降的方向进行调整。
history=model.fit(x,y,epochs=5000)
x:输入数据。 y:标签
epochs:整数,训练终止时的epoch值,训练将在达到该epoch值时停止
fit函数返回一个History的对象,其History.history属性记录了损失函数和其他指标的数值随epoch变化的情况,如果有验证集的话,也包含了验证集的这些指标变化情况
model.predict(x)
model.predict输入数据(data),输出预测结果
model.predict(pd.Series([20]))
pandas基于Numpy,可以看成是处理文本或者表格数据。pandas中有两个主要的数据结构,其中Series数据结构类似于Numpy中的一维数组,DataFrame类似于多维表格数据结构。
一、Series数据结构
Series是一种类似于一维数组的对象,由一组数据和一组与之相关的数据标签(索引)组成。
Series比较像列表(数组)和字典的结合体
import numpy as np
import pandas as pd
df = pd.Series([1,2,3,4], index=['a', 'b', 'c', 'd'])
print(df)
输出:
a 1 b 2 c 3 d 4 dtype: int64
会不定期学到哪分享到哪,哈哈,佛系随缘