如何用numpy数组设置tf.slim的权重

时间:2017-10-25 22:49:35

标签: numpy tensorflow

我想在下面展示我的例子:

x = tf.placeholder(dtype=...)
a = numpy.asarray([784, 10])
z = slim.fully_connected(x, 10, weights_initializer=?)

我尝试过weight_initializer = lambda x1:a,它报告错误:TypeError :()得到一个意外的关键字参数'dtype'

我还在这里发现了另一篇帖子:https://github.com/tensorflow/tensorflow/issues/4016

然而,我仍然不知道答案。非常感谢你。

1 个答案:

答案 0 :(得分:0)

对不起,我真的不明白你要做什么。 如果您的完全连接的图层有10个隐藏的神经元,那么您的初始值设定项必须具有(input_shape, 10)形状,您所提供的是(2,)形状。其次,要使用常量矩阵初始化权重,您应该使用tf.constant_initializer(..)函数。 您是否尝试执行以下操作:(您可以更改numpy使用的init函数)

import tensorflow as tf
import numpy as np

slim = tf.contrib.slim

input_size = ?

x = tf.placeholder(dtype=tf.float32, shape=[input_size])
a = np.random.normal((input_size, 10))

z = slim.fully_connected(x, 10, 
weights_initializer=tf.constant_initializer(a))

init  = tf.global_variables_initializer()

sess = tf.Session()
sess.run(init)