tensorflow个人级快速上手探雷

本人环境是win10+1050tinotebook+python3.6.5+cuda9.0+cudnn7.1+tensorflow1.10.0。总之呢,差不多吃鸡本通用配置了,刚刚够摸到机器学习的边。然后环境胡乱弄的。

搞这套东西的时候感觉tensorflow中文社区里面有些东西不太好理解,就写了这么个鬼东西,希望能给新手帮助。中文社区网址:http://www.tensorfly.cn/tfdoc/get_started/introduction.html

首先是python,这个是以前弄的了,这里不谈。

然后是cuda,tensorflow的1.10版本暂时不支持cuda9.2,如果硬上9.2版本会报错,如图所示。进阶选手可以上github上找找有没有cuda9.2对应的版本,新手略过。

然后就去nvdia官网下cuda,下载地址(百度给的):https://developer.nvidia.com/cuda-90-download-archive

如图所示:

这里面的base installer是cuda安装包,剩下四个patch是补丁,新手不打补丁不影响运行,可以后续需要了再说。

        

然后把第一个最大的东西下载下来安装。第一个安装框是让选解压路径,不是安装路径。这个安完可以删掉。

解压完成之后一路点继续就行了。安装成功可以在cmd里面输入

nvcc -V

 查看cuda安装好了没,安好了会显示版本。

但是偶尔有人会在安装之前卸载显卡驱动(比如我安完9.2发现不对给卸了),如果卸了驱动就会出现cuda安好了但不能用的情况。这时只要给驱动安回来就行了。

另外cuda安装时会自动配置环境变量path,不用自己操心,安完就能用。

安完cuda去下个cudnn,网址(tensorflow中文社区给的):https://developer.nvidia.com/rdp/cudnn-archive

进去选择对应的版本,下载后解压,得到下面的文件夹:

 这个东西里面的bin、include、lib三个需要粘贴到cuda目录当中,如下:

 这样cudnn就算搞完了。

然后是tensorflow,cmd下输入pip install tensorflow-gpu,然后回车,等它下载安装完成就好。如果pip版本太低可能会报warning,按照提示更新即可。

gpu运行按教程的说法好像需要配置一个什么东西,我win10没找到,就直接试项目了,发现可以用。作为上手级别的介绍来说就不讨论那个配置了。

中文社区给了测试gpu运行情况的例子,如下:

# 新建一个 graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
# 新建session with log_device_placement并设置为True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# 运行这个 op.
print sess.run(c)

 运行结果似乎是GPU发挥作用了。这么大一串东西跟官网实例不太一样啊,不过能用上就行。

 然后上图像分类的demo,这个是社区给的mnist,但是那个不能直接用。import input_data要改成from tensorflow.examples.tutorials.mnist import input_data,不然会报如下错误:

可能是版本变动导致的input_data不能用,只好换了。换完这个还要把print换成括号形式的,给的是python2,3代换语法了,程序也要稍加改动。这里直接贴整段的上来了,需要详解的看中文社区的介绍就行。

from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf


mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
x = tf.placeholder("float", [None, 784])
W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x,W) + b)    
y_ = tf.placeholder("float", [None,10])
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)

for i in range(1000):
    batch_xs, batch_ys = mnist.train.next_batch(100)
    sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))

accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))

print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

但是正常使用的代码同样会报很多warning,这个别的博客里面有介绍,这里为了快速上手就不管了,反正warning不影响运行。影响运行的东西在于mnist数据的获取,这个要从google外网下载。没条件搭企业级网络走外网下载的,可以在github或者别的什么论坛找找看。mnist是个长这样的文件夹,跟python脚本扔在同一个目录下就能用了。

运行结果如下:

0.91的正确率, 正常结果。相比昨天用cpu算的速度,gpu要快很多,毕竟人家就擅长算这些东西嘛。任务管理器上的尖峰说明确实是GPU在算东西。

 差不多就这样了,tensorflow还是很好玩的,拉上gpu速度也没那么墨迹了,以后找到好玩的继续发给大家。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值