TensorFlow使用初始化器生成具有常量值的張量

2018-09-15 15:35 更新

tf.constant_initializer

tf.constant_initializer 類
tf.contrib.keras.initializers.Constant 類

定義在:tensorflow/python/ops/init_ops.py.

參見指南:變量>共享變量

初始化器用于生成具有常量值的張量.

生成的張量由 dtype 類型的值填充,參數(shù)值按照新張量的期望形狀來指定(參見下面的例子).

參數(shù)值可以是常量值,或者是 dtype 類型的值的列表.如果值是一個列表,則列表的長度必須小于或等于所需的張量形狀所隱含的元素數(shù).如果值中的元素總數(shù)小于張量形狀所需的元素數(shù),則值中的最后一個元素將用于填充剩余的項.如果值中的元素總數(shù)大于張量形狀所需的元素數(shù),則初始值設(shè)定項將引發(fā) ValueError.

ARGS:

  • value:一個 Python 標(biāo)量、值列表或者 N 維 numpy 數(shù)組.初始化變量的所有元素都將設(shè)置為值參數(shù)中的相應(yīng)值.
  • dtype:數(shù)據(jù)類型.
  • verify_shape:布爾值,用于驗證數(shù)值形狀.為 True 時,如果值的形狀與初始張量的形狀不兼容,則初始值設(shè)定項將引發(fā)錯誤.

示例:可以使用 numpy.ndarray 而不是 value 列表重寫以下示例,甚至重新映射,如 value 列表初始化下面的兩個注釋行所示.

  >>> import numpy as np
  >>> import tensorflow as tf

  >>> value = [0, 1, 2, 3, 4, 5, 6, 7]
  >>> # value = np.array(value)
  >>> # value = value.reshape([2, 4])
  >>> init = tf.constant_initializer(value)

  >>> print('fitting shape:')
  >>> with tf.Session():
  >>>   x = tf.get_variable('x', shape=[2, 4], initializer=init)
  >>>   x.initializer.run()
  >>>   print(x.eval())

  fitting shape:
  [[ 0.  1.  2.  3.]
   [ 4.  5.  6.  7.]]

  >>> print('larger shape:')
  >>> with tf.Session():
  >>>   x = tf.get_variable('x', shape=[3, 4], initializer=init)
  >>>   x.initializer.run()
  >>>   print(x.eval())

  larger shape:
  [[ 0.  1.  2.  3.]
   [ 4.  5.  6.  7.]
   [ 7.  7.  7.  7.]]

  >>> print('smaller shape:')
  >>> with tf.Session():
  >>>   x = tf.get_variable('x', shape=[2, 3], initializer=init)

* <b>`ValueError`</b>: Too many elements provided. Needed at most 6, but received 8

  >>> print('shape verification:')
  >>> init_verify = tf.constant_initializer(value, verify_shape=True)
  >>> with tf.Session():
  >>>   x = tf.get_variable('x', shape=[3, 4], initializer=init_verify)

* <b>`TypeError`</b>: Expected Tensor's shape: (3, 4), got (8,).

方法

__init__

__init__(
    value=0,
    dtype=tf.float32,
    verify_shape=False
)

__call__

__call__(
    shape,
    dtype=None,
    partition_info=None,
    verify_shape=None
)

from_config

from_config(
    cls,
    config
)

從配置字典中實例化一個初始化程序.

例:

initializer = RandomUniform(-1, 1)
config = initializer.get_config()
initializer = RandomUniform.from_config(config)

參數(shù):

  • config:Python 字典.它通常是 get_config 的輸出.

返回:

一個初始化程序?qū)嵗?

get_config

get_config ()
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號