网络编程
位置:首页>> 网络编程>> Python编程>> python人工智能tensorflow函数tf.get_variable使用方法

python人工智能tensorflow函数tf.get_variable使用方法

作者:Bubbliiiing  发布时间:2021-09-14 22:52:09 

标签:python,人工智能,tensorflow,tf.get,variable

参数数量及其作用

该函数共有十一个参数,常用的有:

名称 name

变量规格 shape

变量类型 dtype

变量初始化方式 initializer

所属于的集合 collections

def get_variable(name,
                 shape=None,
                 dtype=None,
                 initializer=None,
                 regularizer=None,
                 trainable=True,
                 collections=None,
                 caching_device=None,
                 partitioner=None,
                 validate_shape=True,
                 use_resource=None,
                 custom_getter=None):

该函数的作用是创建新的tensorflow变量

常见的initializer有:

常量初始化器 tf.constant_initializer

正太分布初始化器 tf.random_normal_initializer

截断正态分布初始化器 tf.truncated_normal_initializer

均匀分布初始化器 tf.random_uniform_initializer

例子

该例子将分别讲述常见的几种initializer的使用方法

import tensorflow as tf;  
import numpy as np;  
#常量初始化器
v1_cons = tf.get_variable('v1_cons', shape=[1,4], initializer=tf.constant_initializer())
v2_cons = tf.get_variable('v2_cons', shape=[1,4], initializer=tf.constant_initializer(9))
#正太分布初始化器
v1_nor = tf.get_variable('v1_nor', shape=[1,4], initializer=tf.random_normal_initializer())
v2_nor = tf.get_variable('v2_nor', shape=[1,4], initializer=tf.random_normal_initializer(mean=0, stddev=5, seed=0))#均值、方差、种子值
#截断正态分布初始化器
v1_trun = tf.get_variable('v1_trun', shape=[1,4], initializer=tf.truncated_normal_initializer())
v2_trun = tf.get_variable('v2_trun', shape=[1,4], initializer=tf.truncated_normal_initializer(mean=0, stddev=5, seed=0))#均值、方差、种子值
#均匀分布初始化器
v1_uni = tf.get_variable('v1_uni', shape=[1,4], initializer=tf.random_uniform_initializer())
v2_uni = tf.get_variable('v2_uni', shape=[1,4], initializer=tf.random_uniform_initializer(maxval=-1., minval=1., seed=0))#最大值、最小值、种子值
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print("常量初始化器v1_cons:",sess.run(v1_cons))
    print("常量初始化器v2_cons:",sess.run(v2_cons))
    print("正太分布初始化器v1_nor:",sess.run(v1_nor))
    print("正太分布初始化器v2_nor:",sess.run(v2_nor))
    print("截断正态分布初始化器v1_trun:",sess.run(v1_trun))
    print("截断正态分布初始化器v2_trun:",sess.run(v2_trun))
    print("均匀分布初始化器v1_uni:",sess.run(v1_uni))
    print("均匀分布初始化器v2_uni:",sess.run(v2_uni))

其输出为:

常量初始化器v1_cons: [[0. 0. 0. 0.]]
常量初始化器v2_cons: [[9. 9. 9. 9.]]
正太分布初始化器v1_nor: [[-0.7286455  -0.03095582  1.6400269  -0.90134907]]
正太分布初始化器v2_nor: [[-1.9957879 10.522196   0.8553612  2.7325907]]
截断正态分布初始化器v1_trun: [[-0.52284956 -0.77045     1.9507815   0.96106136]]
截断正态分布初始化器v2_trun: [[-1.9957879  0.8553612  2.7325907  2.1127698]]
均匀分布初始化器v1_uni: [[0.5369104  0.05912018 0.1587832  0.2859378 ]]
均匀分布初始化器v2_uni: [[ 0.79827476 -0.9403336  -0.69752836  0.9034374 ]]

来源:https://blog.csdn.net/weixin_44791964/article/details/96134474

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com