Anaconda与tensorflow的安装与线性回归模型示例

目录

1 Anaconda

1.1 Anaconda的下载与安装

1.2 测试

2 tensorflow

2.1 新建环境

2.2 更换镜像源

2.3 安装tensorflow

3 例子-线性回归模型

3.1 小问题

3.1.1 代码无法运行问题(In[*])

3.2 生成训练数据

3.3 训练模型


1 Anaconda

1.1 Anaconda的下载与安装

下载链接:https://www.anaconda.com/products/individual#Downloads

下载完毕后安装

此处上面的选项打勾,会自动添加环境变量

之后等待安装完毕。

1.2 测试

安装完毕后在开始菜单中可以打开命令终端或图形界面,这里建议使用图形界面。

打开终端后,输入conda --version可以查看conda的版本:

输入conda info --envs可以查看当前全部环境

2 tensorflow

2.1 新建环境

首先,新建一个环境:

终端:

conda create -n tensorflow python=3.6

图形界面:

然后切换到新建的tensorflow环境:

终端:

activate tensorflow

图形界面:

2.2 更换镜像源

Anaconda在安装、更新包时,默认会从国外的网站上进行下载,所以我们需要更换镜像源,否则下载会经常失败或者非常慢。

这里使用的是中国科技大学的镜像源,如需使用其他链接可以自行百度,有很多。

终端:

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

图形界面:

点击Channels→Add→输入镜像源链接→删除defaults→Update channels

其他的附加库(可在需要时添加):

Conda 附加库:

  • Conda Forge
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
  • msys2
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
  • bioconda
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
  • menpo
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/

2.3 安装tensorflow

终端输入 conda list 可以查看当前拥有的包:

输入命令安装tensorflow,这里安装的是cpu版本:

conda install tensorflow

(另:后面安装其他包可以通过 conda install xxx 来安装)

这里可以看到,镜像源更换成功后,包的下载链接已经被更换了。 

等待安装完毕,安装完毕后可以查看一下,可以看到已经有tensorflow、numpy等包了

3 例子-线性回归模型

这里使用jupyter编写,可通过图形界面直接安装

jupyter可以通过 shift + enter 直接运行

可以分块写代码,分块运行,方便查找问题

这里是一个简单的线性回归问题,并未涉及神经网络,只是用于熟悉tensorflow使用。

自动产生1000个 y = 0.1x + 0.3 的点,然后训练权重W与偏置b,使其接近0.1与0.3。

3.1 小问题

3.1.1 代码无法运行问题(In[*])

输入 print("Hello World") 试运行,发现左边一直是In[*],一直处于运行中的状态

这个问题主要是因为默认安装的 tornado 这个包的版本过高,不支持Python,所以需要更换版本,更换成4.5.3或者4.2都可以

 更换版本后,可以顺利运行了。

3.2 生成训练数据

随机生成x,计算 0.1 * x +0.3 后添加一个随机偏移量得到y

%matplotlib notebook
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
​
#随机生成1000个点在直线 y=0.1x+0.3 的周围
num_points = 1000
vectors_set = []
for i in range(num_points):
    x1 = np.random.normal(0.0, 0.55)
    y1 = x1 * 0.1 + 0.3 + np.random.normal(0.0, 0.03)
    vectors_set.append([x1, y1])
​
#生成样本
x_data = [v[0] for v in vectors_set]
y_data = [v[1] for v in vectors_set]
​
#显示
plt.scatter(x_data, y_data, c='r')
plt.show()

3.3 训练模型

#初始化 W 和 b
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0), name='W')
b = tf.Variable(tf.zeros([1]), name='b')
#预估值y
y = W * x_data + b
​
#以预估值 y 和实际值 y_data 的均方差作为损失函数(目标函数)
loss = tf.reduce_mean(tf.square(y - y_data), name='loss')
#以梯度下降法作为优化函数,此处步长设置为0.5(通常要更小,比如0.01)
optimizer = tf.train.GradientDescentOptimizer(0.5)
#训练的过程就是使误差最小化
train = optimizer.minimize(loss, name='train')
​
#建立session
sess = tf.Session()
​
init = tf.global_variables_initializer()
sess.run(init)
​
#初始化 W 和 b
print("W = ", sess.run(W), "b = ", sess.run(b), "loss = ", sess.run(loss))
#执行20次训练
for step in range(20):
    sess.run(train)
    print("W = ", sess.run(W), "b = ", sess.run(b), "loss = ", sess.run(loss))

训练结果:

可以看到,当训练到最后几轮时,损失值达到0.000867左右后就几乎不再减少了,W趋近于0.0959,b趋近于0.2997. 下面是训练结果的图像:

​​​​​​​

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值