tensorflow-求平均值的函數
reduce_mean
axis為1表示求行
axis為0表示求列
>>> xxx=tf.constant([[1., 10.],[3.,30.]]) >>> sess.run(xxx) array([[ ?1., ?10.], ? ? ? ?[ ?3., ?30.]], dtype=float32) >>> mymean=tf.reduce_mean(xxx,0) >>> sess.run(mymean) array([ ?2., ?20.], dtype=float32) >>> mymean=tf.reduce_mean(xxx,1) >>> sess.run(mymean) array([ ?5.5, ?16.5], dtype=float32) >>>? keep_dims表示是否保持維度。 >>> mymean=tf.reduce_mean(xxx,axis=0,keep_dims=True) >>> sess.run(mymean) array([[ ?2., ?20.]], dtype=float32) >>> mymean=tf.reduce_mean(xxx,axis=0,keep_dims=False) >>> sess.run(mymean) array([ ?2., ?20.], dtype=float32) >>> mymean=tf.reduce_mean(xxx,keep_dims=False) >>> sess.run(mymean) 11.0 >>> mymean=tf.reduce_mean(xxx,keep_dims=True) >>> sess.run(mymean) array([[ 11.]], dtype=float32) >>> mymean=tf.reduce_mean(xxx) >>> sess.run(mymean) 11.0
tf.reduce_mean
?
reduce_mean(
? ? input_tensor,
? ? axis=None,
? ? keep_dims=False,
? ? name=None,
? ? reduction_indices=None
)
Defined in?tensorflow/python/ops/math_ops.py.
See the guide:?Math > Reduction
Computes the mean of elements across dimensions of a tensor.
Reduces?input_tensor?along the dimensions given in?axis. Unless?keep_dims?is true, the rank of the tensor is reduced by 1 for each entry in?axis. If?keep_dims?is true, the reduced dimensions are retained with length 1.
If?axis?has no entries, all dimensions are reduced, and a tensor with a single element is returned.
For example:
?
‘x‘ is [[1., 1.]
? ? ? ? [2., 2.]]
tf.reduce_mean(x) ==> 1.5
tf.reduce_mean(x, 0) ==> [1.5, 1.5]
tf.reduce_mean(x, 1) ==> [1., ?2.]
Args:
input_tensor: The tensor to reduce. Should have numeric type.
keep_dims: If true, retains reduced dimensions with length 1.
name: A name for the operation (optional).
reduction_indices: The old (deprecated) name for axis.
tf.pow
?
pow(
? ? x,
? ? y,
? ? name=None
)
Defined in?tensorflow/python/ops/math_ops.py.
See the guide:?Math > Basic Math Functions
Computes the power of one value to another.
Given a tensor?x?and a tensor?y, this operation computes \(x^y\) for corresponding elements in?x?and?y. For example:
?
tensor ‘x‘ is [[2, 2], [3, 3]]
tensor ‘y‘ is [[8, 16], [2, 3]]
tf.pow(x, y) ==> [[256, 65536], [9, 27]]
class tf.train.AdamOptimizer
init(learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, use_locking=False, name=‘Adam‘)
線性分類源碼:
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Mon Jul 10 09:35:04 2017
@author: [email protected],http://blog.csdn.net/myhaspl"""
import tensorflow as tf
import numpy as np
batch_size=10
w1=tf.Variable(tf.random_normal([2,3],stddev=1,seed=1))
w2=tf.Variable(tf.random_normal([3,1],stddev=1,seed=1))
x=tf.placeholder(tf.float32,shape=(None,2),name="x")
y=tf.placeholder(tf.float32,shape=(None,1),name="y")
h=tf.matmul(x,w1)
yo=tf.matmul(h,w2)
#損失函數計算差異平均值
cross_entropy=tf.reduce_mean(tf.abs(y-yo))
#反向傳播
train_step=tf.train.AdamOptimizer().minimize(cross_entropy)
#生成200個隨機樣本
DATASIZE=200
x_=np.random.rand(DATASIZE,2)
y_=[[int((x1+x2)>2.5)] for (x1,x2) in x_]
with tf.Session() as sess:
#初始化變量
init_op=tf.global_variables_initializer()
sess.run(init_op)
print sess.run(w1)
print sess.run(w2)
#設定訓練輪數
TRAINCOUNT=10000
for i in range(TRAINCOUNT):
#每次遞進選擇一組
start=(i*batch_size) % DATASIZE
end=min(start+batch_size,DATASIZE)
#開始訓練
sess.run(train_step,feed_dict={x:x_[start:end],y:y_[start:end]})
if i%1000==0:
total_cross_entropy=sess.run(cross_entropy,feed_dict={x:x_[start:end],y:y_[start:end]})
print("%d 次訓練之後,損失:%g"%(i+1,total_cross_entropy))
print(sess.run(w1))
print(sess.run(w2))
? ??[[-0.81131822 ?1.48459876 ?0.06532937 -2.4427042 ? 0.0992484 ? 0.59122431]
?[ 0.59282297 -2.12292957 -0.72289723 -0.05627038 ?0.64354479 -0.26432407]]
[[-0.81131822]
?[ 1.48459876]
?[ 0.06532937]
?[-2.4427042 ]
?[ 0.0992484 ]
?[ 0.59122431]]
1 次訓練之後,損失:2.37311
1001 次訓練之後,損失:0.587702
2001 次訓練之後,損失:0.00187977
3001 次訓練之後,損失:0.000224713
4001 次訓練之後,損失:0.000245593
5001 次訓練之後,損失:0.000837345
6001 次訓練之後,損失:0.000561878
7001 次訓練之後,損失:0.000521504
8001 次訓練之後,損失:0.000369141
9001 次訓練之後,損失:2.88023e-05
[[-0.40749896 ?0.74481744 -1.35231423 -1.57555723 ?1.5161525 ? 0.38725093]
?[ 0.84865922 -2.07912779 -0.41053897 -0.21082011 -0.0567192 ?-0.69210052]]
[[ 0.36143586]
?[ 0.34388798]
?[ 0.79891819]
?[-1.57640576]
?[-0.86542428]
?[-0.51558757]]
tf.nn.relu
?
relu(
? ? features,
? ? name=None
)
Defined in?tensorflow/python/ops/gen_nn_ops.py.
See the guides:?Layers (contrib) > Higher level ops for building neural network layers,?Neural Network > Activation Functions
Computes rectified linear:?max(features, 0)
tensorflow-求平均值的函數