tensorflow学习加python复习第一课
对于快速学习tensorflow和python送上三个网址tensorflow中文官方手册、python官方模块索引网址、python教程
第一个代码
下面是tensorflow中文官方手册中的第一个代码
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]
所用环境是python3.5、pycharm2017
运行发生以下错误1
- SyntaxError(语法错误):invalid syntax(无效语法)
显示print用错;
Python 3.5.4 |Continuum Analytics, Inc.| (default, Aug 14 2017, 13:41:13) [MSC v.1900 64 bit (AMD64)] on win32
>>>print"welcom"
File "<input>", line 1
print"welcom"
^
SyntaxError: invalid syntax
>>>print("welcom")
welcom
>>> a="welcom"
>>> print a
File "<input>", line 1
print a
^
SyntaxError: Missing parentheses in call to 'print'
>>> print (a)
welcom
这是python2.7到python3之后改变的地方,到python3后print需要加括号();
修改后仍发生以下错误
运行发生以下错误2
- NameError:name ‘xrange’ is not defined(名字错误:名字‘xrange’没有被定义)
3.5官方文档对于xrange的解释:如下
把xrange重新命名为range,并用list调用显示包装好的range()
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25]
>>> list(range(0, 10, 3))
[0, 3, 6, 9]
>>> list(range(0, -10, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> list(range(0))
[]
>>> list(range(1, 0))
[]
代码段直接把xrange改成range
运行成功
结果
0 [[ 0.07647699 -0.02320087]] [ 1.01223731]
20 [[-0.01048383 0.06358624]] [ 0.4329907]
40 [[ 0.05370879 0.1511424 ]] [ 0.35125813]
60 [[ 0.0816043 0.18170312]] [ 0.31976804]
80 [[ 0.09282445 0.19302201]] [ 0.30762535]
100 [[ 0.09722023 0.19731979]] [ 0.30294165]
120 [[ 0.0989259 0.19896774]] [ 0.30113485]
140 [[ 0.09958538 0.19960204]] [ 0.30043781]
160 [[ 0.09983999 0.19984649]] [ 0.3001689]
180 [[ 0.09993825 0.19994079]] [ 0.30006516]
200 [[ 0.09997619 0.19997716]] [ 0.30002514]
内部各函数说明
待下次完成!!!!!!!!
https://blog.youkuaiyun.com/cxmscb/article/details/54583415
https://docs.scipy.org/doc/numpy/user/quickstart.html
https://docs.scipy.org/doc/numpy/reference/index.html#reference
扩展
range扩展
>>> r = range(0, 20, 2)
>>> r
range(0, 20, 2)
>>> 11 in r
False
>>> 10 in r
True
>>> r.index(10)
5
>>> r[5]
10
>>> r[:5]
range(0, 10, 2)
>>> r[-1]
18
序列的各种运用
部分如下:
python2代码到python3代码转换扩展
使用
$ C:\Users\Administrator\PycharmProjects\testtensorflow>2to3 -w test.py
RefactoringTool: Skipping optional fixer: buffer
RefactoringTool: Skipping optional fixer: idioms
RefactoringTool: Skipping optional fixer: set_literal
RefactoringTool: Skipping optional fixer: ws_comma
RefactoringTool: Refactored test.py
--- test.py (original)
+++ test.py (refactored)
@@ -24,9 +24,9 @@
sess.run(init)
# 拟合平面
-for step in xrange(0, 201):
+for step in range(0, 201):
sess.run(train)
if step % 20 == 0:
- print step, sess.run(W), sess.run(b)
+ print(step, sess.run(W), sess.run(b))
# 得到最佳拟合结果 W: [[0.100 0.200]], b: [0.300]
RefactoringTool: Files that were modified:
RefactoringTool: test.py
效果
test.py为自动转换后的python3文档
test.py.bak为原python2文档保存