Tensorflow 1.0初探(一)

版本升级

谷歌于前不久在首届TensorFlow Dev峰会上,正式发布了用于深度学习的TensorFlow 1.0开源框架。1.0版本提升了debugging,加入和改进了一些高级API,其中包括Keras。总之一系列新的改进,都会让目前这个最受欢迎的深度学习框架变得更快、更灵活、更实用。

  • 版本升级

由于之前项目中用的tensorflow版本为0.12,所以我们先用pip命令直接升级tensorflow版本。

pip install --upgrade tensorflow

升级完成后,打印出tensorflow版本,升级成功

>>>import tensorflow as tf
>>>print tf.__version__
1.0.0

附上1.0的变动

Transitioning to TensorFlow 1.0

  • 代码修改
    还是以前一章线性回归的代码为例,代码如下(单机版)
import tensorflow as tf
import numpy as np
import datetime

def main(_):
    t1 = datetime.datetime.now()

    train_X = np.linspace(-1.0, 1.0, 100)
    train_Y = 2.0 * train_X + np.random.randn(*train_X.shape) * 0.33 + 10.0

    X = tf.placeholder("float")
    Y = tf.placeholder("float")

    w = tf.Variable(0.0, name="weight")
    b = tf.Variable(0.0, name="bias")
    loss = tf.square(Y - tf.multiply(X, w) - b)

    global_step = tf.Variable(0)

    train_op = tf.train.AdagradOptimizer(0.01).minimize(
        loss, global_step=global_step)

    init = tf.global_variables_initializer()

    with tf.Session() as sess:
        sess.run(init)
        step = 0
        while step < 1000:
            for (x, y) in zip(train_X, train_Y):
                _, step = sess.run([train_op, global_step], feed_dict={X: x, Y: y})
            loss_value = sess.run(loss, feed_dict={X: x, Y: y})
            print("Step: {}, loss: {}".format(step, loss_value))

        w, b = sess.run([w, b])
        with open('line_data.txt', 'w') as f:
            f.write(';' + str(w) + ";" + str(b))
    t2 = datetime.datetime.now()
    print("Total Time : {}".format(t2 - t1))
   

升级完成后运行发现WTF

AttributeError: 'module' object has no attribute 'mul'

查看所有改动后发现

tf.mul should be renamed to tf.multiply

所以童鞋们升级后先看看1.0版本的所有改动,不然运行之前的代码一个个的报错,是想砸电脑的...

另外发现官方给的分布式的示例代码也变了,之前用的supervisor变成了tf.train.MonitoredTrainingSession,待我把之前的线性回归分布式的代码修改完再来..

因为自己接触机器学习和深度学习也是个偶然,公司需要所以自己也是赶鸭子上架,现在也是在Coursera上学习大神Andrew Ng的机器学习课程。感觉自己基础还是太薄弱,抓紧学习啦.. 有没有小伙伴来共勉的~

你可能感兴趣的:(Tensorflow 1.0初探(一))