资讯专栏INFORMATION COLUMN

tensorflow进阶笔记 --- #"2"# --- 计算入门

Kaede / 3331人阅读

摘要:常用的是等数值类型数据形状。默认是,就是一维值,也可以是多维,比如表示列是,行不定名称。分割线此处还没有赋值返回类型入门这个讲的很好,的老师讲的。总是定义一个计算图,在计算之前,每个里面是没有真实值的,这和是有区别的。

warm up (前两个符号介绍为热身)

flags

flags的用法:

# filename:test.py
import tensorflow as tf

tf.flags.DEFINE_string("train_image_dir","/tmp/train2014","Training image direct
ory")
FLAGS = tf.flags.FLAGS

print(FLAGS.train_image_dir)

输出是

/tmp/train2014    

一般来讲这就是定义变量,但是tensorflow有一个好处就是很方便,比如执行下面的命令

python test.py --train_image_dir="./train2014"

输出是

./train2014

placeholder

tf.placeholder(dtype, shape=None, name=None)

此函数可以理解为形参,用于定义过程,在执行的时候再赋具体的值

参数:

dtype:数据类型。常用的是tf.float32,tf.float64等数值类型
shape:数据形状。默认是None,就是一维值,也可以是多维,比如[2,3], [None, 3]表示列是3,行不定
name:名称。

-------------------------------分割线----------------------------------

x = tf.placeholder(tf.float32, shape=(1024, 1024))  
y = tf.matmul(x, x)  
  
with tf.Session() as sess:  
  print(sess.run(y))  # ERROR: 此处x还没有赋值.  
  
  rand_array = np.random.rand(1024, 1024)  
  print(sess.run(y, feed_dict={x: rand_array}))  # Will succeed.  

返回:Tensor 类型

入门tensorflow

tensorflow tutorial这个讲的很好,cs224d的老师讲的。

tensorflow总是定义一个计算图,在计算(eval)之前,每个tensor里面是没有真实值的,这和numpy是有区别的。

a = tf.constant(5.0)
b = tf.contant(6.0)
c=a*b

with tf.Session() as sess:
    print(sess.run(c))
    print(c.eval())  #这里的eval只是上一句的语法糖,执行效果一样
    

不run就不会有值

tf.InteractiveSession()

一个用于ipython的长期保持环境的语法糖

tf.Session()

这个是tensorflow中最重要的,没有会话就没有计算

tf.convert_to_tensor()

用于转换numpy或是别的数据到tensor

placeholder

这个提供一个假的数据输入点,结合feed_dict输入数据

input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)

output = tf.mul(input1,input2)

with tf.Session() as sess:
    print(sess.run([output],feed_dict={input1:[7.],input2:[4.]}))
    

tf.variable_scope()

因为一个大型的网络有很多很多的变量,所以有个这个变量域,用于防止冲突。

tf.get_variable()用于在这个变量域中提取变量

很奇妙的是在tensorflow中不同域的变量的命名方式是一样的,用"/"隔开

with tf.variable_scope("foo"):
    with tf.variable_scope("bar"):
        v = tf.get_variable("v",[1])
assert v.name == "foo/bar/v:0"

reuse_variables()重复使用变量,一旦你get之后就需要使用这个函数才能重复使用

或者如下

with tf.variable_scope("foo",reuse=True)
做个 Linear Regression 的 test

用线性函数拟合上面的函数

可以先不看下面的代码,试着想想应该怎么去写

代码:

n_samples =1000
batch_size = 100

# Tensorflow is  finicky about shapes,so resize
X_data = np.reshape(X_data,(n_samples,1))
Y_data = np.reshape(Y_data,(n_samples,1))

# Define placeholders for input
X = tf.placeholder(tf.float32,shape=(batch_size,1))
Y = tf.placeholder(tf.float32,shape=(batch_size,1))

# define variable to be learned
with tf.variable_scope("linear-regression"):
    W = tf.get_variable("weights",(1,1),initializer=tf.random_normal_initializer())
    b = tf.get_variable("bias",(1,),initializer=tf.constant_initializer(0.0,0.0))
    y_pred = tf.matmul(X,W)+b
    loss = tf.reduce_sum(y - y_pred)**2/n_samples)
    
# Sample code to run full graient descent:
# Define optimizer operation
opt_operation = tf.train.AdamOptimizer().minimize(loss)

with tf.Session() as sess:
    # Initiaalize Variables in graph
    sess.run(tf.initialize_all_variables())
    # Gradient descent loop for 500 steps
    for _ in range(500):
        # Select random minibatch
        indices = np.random.choice(n_samples,batch_size)
        X_batch,y_batch = X_data[indices],y_data[indices]
        # Do gradient descent step
        _, loss_val = sess.run([opt_operation,loss],feed_dict={x:X_batch,y:Y_batch})
        

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20130.html

相关文章

  • tensorflow进阶笔记 --- #"2"# --- 计算入门

    摘要:常用的是等数值类型数据形状。默认是,就是一维值,也可以是多维,比如表示列是,行不定名称。分割线此处还没有赋值返回类型入门这个讲的很好,的老师讲的。总是定义一个计算图,在计算之前,每个里面是没有真实值的,这和是有区别的。 warm up (前两个符号介绍为热身) flags flags的用法: # filename:test.py import tensorflow as tf tf....

    wangshijun 评论0 收藏0
  • tensorflow进阶笔记 --- #"4"# deeplearning.ai

    摘要:例子基本来自的的作业。以下的每一个对应的是他的不同的作业。每个我给了个小标题是课程名。这一部分主要学习的是的使用。主要步骤构造自定义的网络很简单。把当前层的数据跳跃几层传到后面去,造成一个残差的效果。 tensorflow in practice 例子基本来自 Andrew Ng 的deeplearning.ai的作业。以下的每一个part对应的是他的不同的作业jupyter。我这里只...

    CarlBenjamin 评论0 收藏0
  • tensorflow进阶笔记 --- #"4"# deeplearning.ai

    摘要:例子基本来自的的作业。以下的每一个对应的是他的不同的作业。每个我给了个小标题是课程名。这一部分主要学习的是的使用。主要步骤构造自定义的网络很简单。把当前层的数据跳跃几层传到后面去,造成一个残差的效果。 tensorflow in practice 例子基本来自 Andrew Ng 的deeplearning.ai的作业。以下的每一个part对应的是他的不同的作业jupyter。我这里只...

    Tikitoo 评论0 收藏0
  • tensorflow进阶笔记 --- #"5"# deeplearning.ai

    摘要:这个算是最复杂的一部分了,有很多细节,比如移动框的地方。这里需要注意我们没有变化。 Convolution model - Step by Step - v2 这部分代码我一开始做是错的,想了好久细节才写出来,我觉得搞深度学习的很有必要把这个作业过一遍,为了让大家都能顺利完成,我把我的代码贴出来。 zero_pad这部分看似就一行代码,但是需要仔细想想。 # GRADED FUNCTI...

    csRyan 评论0 收藏0
  • tensorflow进阶笔记 --- #"5"# deeplearning.ai

    摘要:这个算是最复杂的一部分了,有很多细节,比如移动框的地方。这里需要注意我们没有变化。 Convolution model - Step by Step - v2 这部分代码我一开始做是错的,想了好久细节才写出来,我觉得搞深度学习的很有必要把这个作业过一遍,为了让大家都能顺利完成,我把我的代码贴出来。 zero_pad这部分看似就一行代码,但是需要仔细想想。 # GRADED FUNCTI...

    GHOST_349178 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<