1. 程式人生 > >基本使用與常用函式

基本使用與常用函式

基本使用

1)常量、變數

 

#常量不可改變

a = tf.constant(10)

 

#變數值可以更新

b = tf.variable(tf.zeros([784,10]))

 

2)佔位符

 

佔位符用來接收值

#定義兩個placeholder

x = tf.placeholder(tf.float32, [None,784])

y = tf.placeholder(tf.float32, [None,10])

 

3)構建圖,feed資料,初始化全域性變數

init = tf.global_variables_initializer()

with tf.Session() as sess:

    sess.run(init)

sess.run(train_step, feed_dict={x:batch_xs,y:batch_ys})

 

常見函式

1、tf.argmin(input, dimension, name=None) 返回input最小值的索引index

 

2、tf.trainable_variables和tf.all_variables的對比

tf.trainable_variables返回的是需要訓練的變數列表

 

tf.all_variables返回的是所有變數的列表

 

3、tf.reduce_max、tf.sequence_mask

tf.reduce_max函式的作用:計算張量的各個維度上的元素的最大值。

tf.sequence_mask的作用是構建序列長度的mask標誌

import tensorflow as tf

mask = tf.sequence_mask([1, 3, 2], 5)

with tf.Session() as sess:

    mask = sess.run(mask)

    print(mask)

>>> 

[[ True False False False False]

 [ True  True  True False False]

 [ True  True False False False]]

 

兩個函式結合使用:

根據目標序列長度,選出其中最大值,然後使用該值構建序列長度的mask標誌,程式碼:

 

import tensorflow as tf

max_value = tf.reduce_max([1, 3, 2])

mask = tf.sequence_mask([1, 3, 2], max_value)

with tf.Session() as sess:

    mask = sess.run(mask)

print(mask)

>>> 

[[ True False False]

 [ True  True  True]

 [ True  True False]]