自定义权重初始化tensorflow tf.layers.dense [英] Custom weight initialization tensorflow tf.layers.dense

查看:1069
本文介绍了自定义权重初始化tensorflow tf.layers.dense的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将自定义初始化程序设置为 tf.layers.dense ,在其中我使用初始化 kernel_initializer 我已经有权重矩阵。

I'm trying to set up custom initializer to tf.layers.dense where I initialize kernel_initializer with a weight matrix I already have.

u_1 = tf.placeholder(tf.float32, [784, 784])
first_layer_u = tf.layers.dense(X_, n_params, activation=None, 
                              kernel_initializer=u_1,
                              bias_initializer=tf.keras.initializers.he_normal())

这会引发错误,提示 ValueError:如果初始值设定项是常量,则不要指定形状。

将占位符分配给 kernel_initializer 是一个问题,还是我缺少了什么?

Is it a problem to assign placeholder to kernel_initializer or am I missing something?

推荐答案

至少有两种方法可以实现此目的:

There are at least two ways to achieve this:

1创建自己的图层

  W1 = tf.Variable(YOUR_WEIGHT_MATRIX, name='Weights')
  b1 = tf.Variable(tf.zeros([YOUR_LAYER_SIZE]), name='Biases') #or pass your own
  h1 = tf.add(tf.matmul(X, W1), b1)

2使用 tf.constant_initializer

init = tf.constant_initializer(YOUR_WEIGHT_MATRIX)
l1 = tf.layers.dense(X, o, kernel_initializer=init)

这篇关于自定义权重初始化tensorflow tf.layers.dense的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆