初次接触TensorFlow笔记

15 篇文章 0 订阅
4 篇文章 0 订阅

该怎么说呢,每个人的环境不同可能遇到的问题也不同,比如在不同的Linux版本和Mac版本下需要的操作可能略有不同,这里只简单记录一下我遇到的问题,我是在Ubuntu18.10+MacOS Sierra10.12下都进行了安装测试,熟悉了安装流程很快就能安装好,下文如有链接打不开,请自行翻墙
1.首先你可以登录TensorFlow中文社区TensorFlow GitHub仓库去做一个大致的了解

2.首先Linux和Mac都自带了Python2.x版本,pip网上说是自带了,但是我的Linux和Mac上都没有,那么就要自己安装pip,另可以尝试用Python3,相应的pip命令就变为了pip3

3.接下来在安装之前不管是Linux还是Mac最好都进行pip换源,换到国内镜像上来,不然可能安装失败,提示你所选的镜像是否正在同步(异常图片暂未保存),其次就是国外镜像即使我翻墙网速也是慢的可以,所以还是先换源再安装,换源教程参照一下链接
  Linux换源教程
  Mac换源教程
4.安装(这里可以先知安装CPU-only,GPU的可选可不选,对于简单的测试影响不大)
在这里插入图片描述
5.检测(这一步可能存在问题,问题描述为序号6)
在这里插入图片描述
6.首先我在Linux上安装的的时候第一次非常顺利,但是一番操作之后

import tensorflow as tf

报异常,这个问题困扰了几个小时,网上也没特别好的教程有安装pywrap_tensorflo的,还有各种做法,我试了试都没成功,最后还是静下心来去TensorFlow中文社区里找到了解决方案
在这里插入图片描述
这里我没有跟着手册上的步骤来,没有执行brew reinstall --devel protobuf,而是pip list看到了安装的protobuf是3.7.1,然后pip uninstall protobuf,再执行pip install protobuf就好了,再import tensorflow as tf就正常了,但是pip list中显示protobuf还是3.7.1版本,不知道这是为什么,就像我第一次安装很顺利,然后莫名其妙的这里就报错了一样

pip uninstall protobuf
pip install protobuf

7.其次安装过程中有可能还会提示缺少某些依赖,按照提示安装一下就好
8.比如在Mac上安装时出现的

cannot install ''numpy'.It is a distutils installed project and thus we cannot ...
Cannot uninstall 'six'. It is a distutils installed project...

我的解决办法是强行安装更新更高的版本

sudo pip install numpy --ignore-installed numpy
sudo pip install six --upgrade --ignore-installed six

其他解决方案可以跳转该链接
9.还有就是我在Linux下安装的时候碰到了pip install - killed问题,
解决办法是在其后加上–no-cache-dir,stackoverflow上的文章链接

在这里插入图片描述
10.另外就是关于TensorFlow中文社区里的最开始的几个小的代码例子的笔记
这段很短的 Python 程序生成了一些三维数据, 然后用一个平面拟合它.

import tensorflow as tf
import numpy as np

# 使用 NumPy 生成假数据(phony data), 总共 100 个点.
x_data = np.float32(np.random.rand(2, 100)) # 随机输入
y_data = np.dot([0.100, 0.200], x_data) + 0.300

# 构造一个线性模型
# 
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
y = tf.matmul(W, x_data) + b

# 最小化方差
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

# 初始化变量
init = tf.initialize_all_variables()

# 启动图 (graph)
sess = tf.Session()
sess.run(init)

# 拟合平面
for step in xrange(0, 201):
    sess.run(train)
    if step % 20 == 0:
        print step, sess.run(W), sess.run(b)

# 得到最佳拟合结果 W: [[0.100  0.200]], b: [0.300]

运行该Python代码会提示字符集异常,解决办法是只要在文件开头加入下面代码就行了,特别注意:上面这条语句一定要加在源代码的第一行!!!!

# -*- coding: UTF-8 -*-

默认的python文件是采用ascii编码的,在头部加入# -- coding: utf-8 -- 则指定文件的编码格式是utf-8,那么就是说文件内你可以用中文或其他的文字了
11.代码运行的时候还会报警告,警告可以先不管,但是也可以解决,因为initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.原来2017-03的时候已经不再使用,而使用新的参数进行调用,解决办法是将tf.initialize_all_variables()替换为tf.global_variables_initializer()即可
12.Your CPU supports instructions that this TensorFlow binary was not compiled to use…的问题,解决办法,参照链接
13.忽略警告的话,上述代码的运行结果如图:
在这里插入图片描述
14.MNIST机器学习入门中的例子运行结果为
在这里插入图片描述
结果为0.9176和文档中的大约91%相吻合,具体深入原理只能留待以后解决了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值