版本升级
谷歌于前不久在首届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的机器学习课程。感觉自己基础还是太薄弱,抓紧学习啦.. 有没有小伙伴来共勉的~