当前位置 博文首页 > shelgi的博客:tensorflow2.0---1.tensorflow入门
import tensorflow as tf
print(tf.test.gpu_device_name())
print(tf.__version__)
看到有GPU字样说明tensorflow-gpu环境安装成功,遇到坑可以看我上一篇博客
对了,如果想在jupyter里面使用自己的虚拟环境的话需要把虚拟环境添加进jupyter,详细的方法可以查看这个链接https://blog.csdn.net/u014665013/article/details/81084604
成功添加虚拟环境的话打开jupyter会是这样的
想在pycharm使用虚拟环境就在setting里面添加环境,选择anaconda\envs下的虚拟环境就好了(有的文件夹可能是隐藏文件夹,在add里面找不到,要先取消文件夹隐藏属性)
#计算一个样例
import tensorflow as tf
A = tf.constant([[1, 2], [3, 4]])
B = tf.constant([[5, 6], [7, 8]])
C = tf.matmul(A, B)
print(C)
介绍一下基本的知识
1.定义一个随机数
2.定义一个变量
3.定义一个矩阵
# 定义一个随机数(标量)
random_float = tf.random.uniform(shape=())
# 定义一个有2个元素的零向量
zero_vector = tf.zeros(shape=(2))
# 定义两个2×2的常量矩阵
A = tf.constant([[1., 2.], [3., 4.]])
B = tf.constant([[5., 6.], [7., 8.]])
4.基本的加减乘除
C=tf.add(A,B)
D=tf.subtract(A,B)
E=tf.matmul(A,B)
F=tf.divide(A,B)
print("A+B=",C)
print("A-B=",D)
print("A*B=",E)
print("A/B=",F)
5.求导
TensorFlow 提供了强大的 **自动求导机制 **来计算导数。下面就用 tf.GradientTape() 计算函数
y
(
x
)
=
x
2
y(x) = x^2
y(x)=x2 在 x = 3 时的导数:
x=tf.Variable(initial_value=3.)
with tf.GradientTape() as tape:
y=tf.square(x)
y_grad=tape.gradient(y,x)
print("y=x^2在3处的值为:{}".format(y))
print("y=x^2在3处的导数值为:{}".format(y_grad))
求偏导
在机器学习中,更加常见的是对多元函数求偏导数,以及对向量或矩阵的求导。这些对于 TensorFlow 也不在话下。以下代码展示了如何使用 tf.GradientTape() 计算函数 L(w, b) =
∥
X
w
+
b
?
y
∥
2
\|Xw + b - y\|^{2}
∥Xw+b?y∥2在 w =
(
1
,
2
)
T
(1, 2)^T
(1,2)T, b = 1 时分别对 w, b 的偏导数。其中X =
[
1
2
3
4
]
\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}
[13?24?], y =
[
1
2
]
\begin{bmatrix} 1 \\ 2\end{bmatrix}
[12?]。
x=tf.constant([[1.,2.],[3.,4.]])
y=tf.constant([[1.],[2.]])
w=tf.Variable(initial_value=[[1.],[2.]])
b=tf.Variable(initial_value=1.)
with tf.GradientTape() as tape:
L=tf.reduce_sum(tf.square(tf.matmul(x,w)+b-y))
w_grad,b_grad=tape.gradient(L,[w,b])
print(L.numpy())
print(w_grad.numpy())
print(b_grad.numpy())
import numpy as np
year=np.array([2013,2014,2015,2016,2017],dtype=np.float32)
price=np.array([12000,14000,15000,16500,17500],dtype=np.float32)
#归一化
x=(year-year.min())/(year.max()-year.min())
Y=(price-price.min())/(price.max()-price.min())
print(x,Y)
接下来,我们使用梯度下降方法来求线性模型中两个参数 a 和 b 的值 3。
回顾机器学习的基础知识,对于多元函数 f(x) 求局部极小值,梯度下降 的过程如下:
初始化自变量为 x_0 , k=0
迭代进行下列步骤直到满足收敛条件:
求函数 f(x) 关于自变量的梯度 ? f ( x k ) \nabla f(x_k) ?f(xk?)
更新自变量: x k + 1 = x k ? γ ? f ( x k ) x_{k+1} = x_{k} - \gamma \nabla f(x_k) xk+1?=xk?