TensorFlow部分函数理解，一

```本篇介绍函数包括：tf.conv2d
tf.nn.relu
tf.nn.max_pool
tf.nn.droupout
tf.nn.sigmoid_cross_entropy_with_logits
tf.truncated_normal
tf.constant
tf.placeholder
tf.nn.bias_add
tf.reduce_mean  tf.squared_difference  tf.square  tf.Variable```

tf.conv2d

```import tensorflow as tf

a = tf.constant([1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,1,0,0,1,1,0,0],dtype=tf.float32,shape=[1,5,5,1])
b = tf.constant([1,0,1,0,1,0,1,0,1],dtype=tf.float32,shape=[3,3,1,1])
c = tf.nn.conv2d(a,b,strides=[1, 2, 2, 1],padding='VALID')
d = tf.nn.conv2d(a,b,strides=[1, 2, 2, 1],padding='SAME')
with tf.Session() as sess:
print ("c shape:")
print (c.shape)
print ("c value:")
print (sess.run(c))
print ("d shape:")
print (d.shape)
print ("d value:")
print (sess.run(d))```

然后执行:

```cd /home/ubuntu;
python conv2d.py```

执行结果：

```c shape:
(1, 3, 3, 1)
c value:
[[[[ 4.]
[ 3.]
[ 4.]]

[[ 2.]
[ 4.]
[ 3.]]

[[ 2.]
[ 3.]
[ 4.]]]]
d shape:
(1, 5, 5, 1)
d value:
[[[[ 2.]
[ 2.]
[ 3.]
[ 1.]
[ 1.]]

[[ 1.]
[ 4.]
[ 3.]
[ 4.]
[ 1.]]

[[ 1.]
[ 2.]
[ 4.]
[ 3.]
[ 3.]]

[[ 1.]
[ 2.]
[ 3.]
[ 4.]
[ 1.]]

[[ 0.]
[ 2.]
[ 2.]
[ 1.]
[ 1.]]]]```
`tf.nn.relu:`
```import tensorflow as tf

a = tf.constant([1,-2,0,4,-5,6])
b = tf.nn.relu(a)
with tf.Session() as sess:
print (sess.run(b))```

然后执行：

```cd /home/ubuntu;
python relu.py```

执行结果：

`[1 0 0 4 0 6]`
`tf.nn.max_pool`
```import tensorflow as tf

a = tf.constant([1,3,2,1,2,9,1,1,1,3,2,3,5,6,1,2],dtype=tf.float32,shape=[1,4,4,1])
b = tf.nn.max_pool(a,ksize=[1, 2, 2, 1],strides=[1, 2, 2, 1],padding='VALID')
c = tf.nn.max_pool(a,ksize=[1, 2, 2, 1],strides=[1, 2, 2, 1],padding='SAME')
with tf.Session() as sess:
print ("b shape:")
print (b.shape)
print ("b value:")
print (sess.run(b))
print ("c shape:")
print (c.shape)
print ("c value:")
print (sess.run(c))```

然后执行：

```cd /home/ubuntu;
python max_pool.py```

执行结果：

```b shape:
(1, 2, 2, 1)
b value:
[[[[ 9.]
[ 2.]]

[[ 6.]
[ 3.]]]]
c shape:
(1, 2, 2, 1)
c value:
[[[[ 9.]
[ 2.]]

[[ 6.]
[ 3.]]]]tf.nn.droupout```
```import tensorflow as tf

a = tf.constant([1,2,3,4,5,6],shape=[2,3],dtype=tf.float32)
b = tf.placeholder(tf.float32)
c = tf.nn.dropout(a,b,[2,1],1)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print (sess.run(c,feed_dict={b:0.75}))```

然后执行：

```cd /home/ubuntu;
python dropout.py```

执行结果：

```[[ 0.          0.          0.        ]
[ 5.33333349  6.66666651  8.        ]]```

tf.nn.sigmoid_cross_entropy_with_logits

```import tensorflow as tf
x = tf.constant([1,2,3,4,5,6,7],dtype=tf.float64)
y = tf.constant([1,1,1,0,0,1,0],dtype=tf.float64)
loss = tf.nn.sigmoid_cross_entropy_with_logits(labels = y,logits = x)
with tf.Session() as sess:
print (sess.run(loss))```

然后执行：

```cd /home/ubuntu;
python sigmoid_cross_entropy_with_logits.py```

执行结果：

```[  3.13261688e-01   1.26928011e-01   4.85873516e-02   4.01814993e+00
5.00671535e+00   2.47568514e-03   7.00091147e+00]```

tf.truncated_normal

```import tensorflow as tf
initial = tf.truncated_normal(shape=[3,3], mean=0, stddev=1)
print(tf.Session().run(initial))```

然后执行:

`python /home/ubuntu/truncated_normal.py`

执行结果：

[[-1.01231802 1.25015056 0.39860222]

[ 0.43949991 -0.80240148 0.81758308]

[-0.76539534 1.95935833 1.20631492]]

tf.constant

```#!/usr/bin/python

import tensorflow as tf
import numpy as np
a = tf.constant([1,2,3,4,5,6],shape=[2,3])
b = tf.constant(-1,shape=[3,2])
c = tf.matmul(a,b)

e = tf.constant(np.arange(1,13,dtype=np.int32),shape=[2,2,3])
f = tf.constant(np.arange(13,25,dtype=np.int32),shape=[2,3,2])
g = tf.matmul(e,f)
with tf.Session() as sess:
print (sess.run(a))
print ("##################################")
print (sess.run(b))
print ("##################################")
print (sess.run(c))
print ("##################################")
print (sess.run(e))
print ("##################################")
print (sess.run(f))
print ("##################################")
print (sess.run(g))```

然后执行:

`python /home/ubuntu/constant.py`

执行结果：

```a: 2x3 维张量；
b: 3x2 维张量；
c: 2x2 维张量；
e: 2x2x3 维张量；
f: 2x3x2 维张量；
g: 2x2x2 维张量。```

tf.placeholder

```#!/usr/bin/python

import tensorflow as tf
import numpy as np

x = tf.placeholder(tf.float32,[None,3])
y = tf.matmul(x,x)
with tf.Session() as sess:
rand_array = np.random.rand(3,3)
print(sess.run(y,feed_dict={x:rand_array}))```

然后执行:

`python /home/ubuntu/placeholder.py`

执行结果：

`输出一个 3x3 的张量`

[[ 1.04605961 0.45888701 0.6270988 ]

[ 0.86465603 0.87210596 0.71620005]

[ 0.54584444 0.44113758 0.6248076 ]]

tf.nn.bias_add

```#!/usr/bin/python

import tensorflow as tf
import numpy as np

a = tf.constant([[1.0, 2.0],[1.0, 2.0],[1.0, 2.0]])
b = tf.constant([2.0,1.0])
c = tf.constant([1.0])
sess = tf.Session()
print (sess.run(tf.nn.bias_add(a, b)))
#print (sess.run(tf.nn.bias_add(a,c))) error
print ("##################################")
print (sess.run(tf.add(a, b)))
print ("##################################")
print (sess.run(tf.add(a, c)))```

[[ 3. 3.]

[ 3. 3.]

[ 3. 3.]]

##################################

[[ 3. 3.]

[ 3. 3.]

[ 3. 3.]]

##################################

[[ 2. 3.]

[ 2. 3.]

[ 2. 3.]]

tf.reduce_mean

```#!/usr/bin/python

import tensorflow as tf
import numpy as np

initial = [[1.,1.],[2.,2.]]
x = tf.Variable(initial,dtype=tf.float32)
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print(sess.run(tf.reduce_mean(x)))
print(sess.run(tf.reduce_mean(x,0))) #Column
print(sess.run(tf.reduce_mean(x,1))) #row```

然后执行:

`python /home/ubuntu/reduce_mean.py`

执行结果：

```1.5
[ 1.5  1.5]
[ 1.  2.]```

tf.squared_difference

```#!/usr/bin/python

import tensorflow as tf
import numpy as np

initial_x = [[1.,1.],[2.,2.]]
x = tf.Variable(initial_x,dtype=tf.float32)
initial_y = [[3.,3.],[4.,4.]]
y = tf.Variable(initial_y,dtype=tf.float32)
diff = tf.squared_difference(x,y)
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print(sess.run(diff))```

然后执行:

`python /home/ubuntu/squared_difference.py`

执行结果：

```[[ 4.  4.]
[ 4.  4.]]```

tf.square

```#!/usr/bin/python
import tensorflow as tf
import numpy as np

initial_x = [[1.,1.],[2.,2.]]
x = tf.Variable(initial_x,dtype=tf.float32)
x2 = tf.square(x)
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print(sess.run(x2))```

然后执行:

`python /home/ubuntu/square.py`

执行结果：

```[[ 1.  1.]
[ 4.  4.]]```

tf.Variable

```#!/usr/bin/python

import tensorflow as tf
initial = tf.truncated_normal(shape=[10,10],mean=0,stddev=1)
W=tf.Variable(initial)
list = [[1.,1.],[2.,2.]]
X = tf.Variable(list,dtype=tf.float32)
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print ("##################(1)################")
print (sess.run(W))
print ("##################(2)################")
print (sess.run(W[:2,:2]))
op = W[:2,:2].assign(22.*tf.ones((2,2)))
print ("###################(3)###############")
print (sess.run(op))
print ("###################(4)###############")
print (W.eval(sess)) #computes and returns the value of this variable
print ("####################(5)##############")
print (W.eval())  #Usage with the default session
print ("#####################(6)#############")
print (W.dtype)
print (sess.run(W.initial_value))
print (sess.run(W.op))
print (W.shape)
print ("###################(7)###############")
print (sess.run(X))```

```##################(1)################
[[-1.23091912 -1.15485024  0.23904395  0.34435439 -0.99782348 -0.45796475
-1.2815994  -1.86255741  0.61719501 -0.23074889]
[ 0.04772037 -1.87820387 -0.94470227  0.36448902 -0.61483711 -0.88883013
-1.33075011 -0.2014154  -0.29572284 -0.64329118]
[-0.46051967 -1.50215697  0.52736723 -0.64575762  0.40186197  0.888547
0.41293475  0.58065104  0.42752498 -0.41847843]
[ 0.2490586  -0.70486099  0.12240842 -0.99978852  0.2651979   1.02804005
-0.58180624 -0.32164943  0.02628148  1.41673708]
[ 0.45682913  0.25587147  0.21995042  0.7875219   0.05864362 -0.18229504
1.59454536  1.06499553  0.31585202 -0.08250634]
[ 1.28422952 -0.09098073  0.08750965  0.58767647 -0.18843929  1.00211585
-0.34881082 -0.88564688  0.59491009 -0.25224382]
[-1.40284967  0.22108991 -1.71350789 -0.02776204  1.19743824  1.53484929
-0.51727623 -0.58549863 -0.1318036  -1.1405164 ]
[-0.89546037  0.8151502  -0.05706482  0.14027117 -0.01335291  1.14979923
-0.11841752 -0.07685678 -0.37184918 -0.05404587]
[-1.04701281  0.47635376 -0.67598844  0.44912511 -0.19697872  0.68457508
-0.41106322  0.9739325   1.16200626  0.34319773]
[ 0.77753568 -0.06508502  0.3194975  -0.73810351  0.79470289 -0.99434441
1.00614071 -0.59807277  1.38162911  0.42871621]]
##################(2)################
[[-1.23091912 -1.15485024]
[ 0.04772037 -1.87820387]]
###################(3)###############
[[  2.20000000e+01   2.20000000e+01   2.39043951e-01   3.44354391e-01
-9.97823477e-01  -4.57964748e-01  -1.28159940e+00  -1.86255741e+00
6.17195010e-01  -2.30748892e-01]
[  2.20000000e+01   2.20000000e+01  -9.44702268e-01   3.64489019e-01
-6.14837110e-01  -8.88830125e-01  -1.33075011e+00  -2.01415405e-01
-2.95722842e-01  -6.43291175e-01]
[ -4.60519671e-01  -1.50215697e+00   5.27367234e-01  -6.45757616e-01
4.01861966e-01   8.88547003e-01   4.12934750e-01   5.80651045e-01
4.27524984e-01  -4.18478429e-01]
[  2.49058604e-01  -7.04860985e-01   1.22408420e-01  -9.99788523e-01
2.65197903e-01   1.02804005e+00  -5.81806242e-01  -3.21649432e-01
2.62814816e-02   1.41673708e+00]
[  4.56829131e-01   2.55871475e-01   2.19950423e-01   7.87521899e-01
5.86436242e-02  -1.82295039e-01   1.59454536e+00   1.06499553e+00
3.15852016e-01  -8.25063437e-02]
[  1.28422952e+00  -9.09807310e-02   8.75096470e-02   5.87676466e-01
-1.88439295e-01   1.00211585e+00  -3.48810822e-01  -8.85646880e-01
5.94910085e-01  -2.52243817e-01]
[ -1.40284967e+00   2.21089914e-01  -1.71350789e+00  -2.77620405e-02
1.19743824e+00   1.53484929e+00  -5.17276227e-01  -5.85498631e-01
-1.31803602e-01  -1.14051640e+00]
[ -8.95460367e-01   8.15150201e-01  -5.70648164e-02   1.40271172e-01
-1.33529110e-02   1.14979923e+00  -1.18417524e-01  -7.68567771e-02
-3.71849179e-01  -5.40458746e-02]
[ -1.04701281e+00   4.76353765e-01  -6.75988436e-01   4.49125111e-01
-1.96978718e-01   6.84575081e-01  -4.11063224e-01   9.73932505e-01
1.16200626e+00   3.43197733e-01]
[  7.77535677e-01  -6.50850236e-02   3.19497496e-01  -7.38103509e-01
7.94702888e-01  -9.94344413e-01   1.00614071e+00  -5.98072767e-01
1.38162911e+00   4.28716213e-01]]
###################(4)###############
[[  2.20000000e+01   2.20000000e+01   2.39043951e-01   3.44354391e-01
-9.97823477e-01  -4.57964748e-01  -1.28159940e+00  -1.86255741e+00
6.17195010e-01  -2.30748892e-01]
[  2.20000000e+01   2.20000000e+01  -9.44702268e-01   3.64489019e-01
-6.14837110e-01  -8.88830125e-01  -1.33075011e+00  -2.01415405e-01
-2.95722842e-01  -6.43291175e-01]
[ -4.60519671e-01  -1.50215697e+00   5.27367234e-01  -6.45757616e-01
4.01861966e-01   8.88547003e-01   4.12934750e-01   5.80651045e-01
4.27524984e-01  -4.18478429e-01]
[  2.49058604e-01  -7.04860985e-01   1.22408420e-01  -9.99788523e-01
2.65197903e-01   1.02804005e+00  -5.81806242e-01  -3.21649432e-01
2.62814816e-02   1.41673708e+00]
[  4.56829131e-01   2.55871475e-01   2.19950423e-01   7.87521899e-01
5.86436242e-02  -1.82295039e-01   1.59454536e+00   1.06499553e+00
3.15852016e-01  -8.25063437e-02]
[  1.28422952e+00  -9.09807310e-02   8.75096470e-02   5.87676466e-01
-1.88439295e-01   1.00211585e+00  -3.48810822e-01  -8.85646880e-01
5.94910085e-01  -2.52243817e-01]
[ -1.40284967e+00   2.21089914e-01  -1.71350789e+00  -2.77620405e-02
1.19743824e+00   1.53484929e+00  -5.17276227e-01  -5.85498631e-01
-1.31803602e-01  -1.14051640e+00]
[ -8.95460367e-01   8.15150201e-01  -5.70648164e-02   1.40271172e-01
-1.33529110e-02   1.14979923e+00  -1.18417524e-01  -7.68567771e-02
-3.71849179e-01  -5.40458746e-02]
[ -1.04701281e+00   4.76353765e-01  -6.75988436e-01   4.49125111e-01
-1.96978718e-01   6.84575081e-01  -4.11063224e-01   9.73932505e-01
1.16200626e+00   3.43197733e-01]
[  7.77535677e-01  -6.50850236e-02   3.19497496e-01  -7.38103509e-01
7.94702888e-01  -9.94344413e-01   1.00614071e+00  -5.98072767e-01
1.38162911e+00   4.28716213e-01]]
####################(5)##############
[[  2.20000000e+01   2.20000000e+01   2.39043951e-01   3.44354391e-01
-9.97823477e-01  -4.57964748e-01  -1.28159940e+00  -1.86255741e+00
6.17195010e-01  -2.30748892e-01]
[  2.20000000e+01   2.20000000e+01  -9.44702268e-01   3.64489019e-01
-6.14837110e-01  -8.88830125e-01  -1.33075011e+00  -2.01415405e-01
-2.95722842e-01  -6.43291175e-01]
[ -4.60519671e-01  -1.50215697e+00   5.27367234e-01  -6.45757616e-01
4.01861966e-01   8.88547003e-01   4.12934750e-01   5.80651045e-01
4.27524984e-01  -4.18478429e-01]
[  2.49058604e-01  -7.04860985e-01   1.22408420e-01  -9.99788523e-01
2.65197903e-01   1.02804005e+00  -5.81806242e-01  -3.21649432e-01
2.62814816e-02   1.41673708e+00]
[  4.56829131e-01   2.55871475e-01   2.19950423e-01   7.87521899e-01
5.86436242e-02  -1.82295039e-01   1.59454536e+00   1.06499553e+00
3.15852016e-01  -8.25063437e-02]
[  1.28422952e+00  -9.09807310e-02   8.75096470e-02   5.87676466e-01
-1.88439295e-01   1.00211585e+00  -3.48810822e-01  -8.85646880e-01
5.94910085e-01  -2.52243817e-01]
[ -1.40284967e+00   2.21089914e-01  -1.71350789e+00  -2.77620405e-02
1.19743824e+00   1.53484929e+00  -5.17276227e-01  -5.85498631e-01
-1.31803602e-01  -1.14051640e+00]
[ -8.95460367e-01   8.15150201e-01  -5.70648164e-02   1.40271172e-01
-1.33529110e-02   1.14979923e+00  -1.18417524e-01  -7.68567771e-02
-3.71849179e-01  -5.40458746e-02]
[ -1.04701281e+00   4.76353765e-01  -6.75988436e-01   4.49125111e-01
-1.96978718e-01   6.84575081e-01  -4.11063224e-01   9.73932505e-01
1.16200626e+00   3.43197733e-01]
[  7.77535677e-01  -6.50850236e-02   3.19497496e-01  -7.38103509e-01
7.94702888e-01  -9.94344413e-01   1.00614071e+00  -5.98072767e-01
1.38162911e+00   4.28716213e-01]]
#####################(6)#############
<dtype: 'float32_ref'>
[[-0.41857633 -0.2713519   0.30368868  0.20746167  1.85322762  1.31566119
1.54675031 -1.72509181  0.05661546  0.07088134]
[ 1.67809737  0.83413428 -0.46248889 -0.64880568  1.0052985   0.28734493
1.02057004  1.30170429 -0.92802709 -0.13301572]
[-1.3703959  -0.96703321  0.81257963 -0.88620949 -0.0416972   0.41219631
-0.77539968 -0.87115741 -0.61586332 -1.07051158]
[-1.20221102  1.009269    0.53348398 -0.78492016 -1.57486057 -0.37586671
0.79054028  0.42812335  0.50074643 -0.22152463]
[-0.38758773  0.26680526 -0.07168344 -0.19825138 -0.0245118   0.76605487
-1.60584402 -0.83085275 -1.21274364  0.12311368]
[ 0.92161274  0.96963346 -0.51853895  0.39782578 -0.11624574  0.23405044
-0.77997881 -1.42478561 -0.46830443 -0.2615248 ]
[ 0.1299911  -0.64964086  1.48451924  0.13839777 -0.78998685 -0.6932441
-0.05188456  0.72245222 -0.12273535 -0.16151385]
[-0.93579388  1.08634007 -0.35739595 -1.54274142  0.42254066  0.74695534
-0.0469315  -1.41842675  0.41519207 -0.59990394]
[-1.28783917 -1.86210358 -0.63155401 -0.37928078 -1.80430996 -0.81117511
1.12262106  1.10448146 -0.10529845  1.29226148]
[-1.38174736  1.05984509 -0.46125889  1.05563366 -1.37600601  0.44229579
1.21501267  0.55204743  0.11826833  0.17191544]]
None
(10, 10)
###################(7)###############
[[ 1.  1.]
[ 2.  2.]]```