私は次のようにそれを行う:
self.w_full, self.b_full = [], []
n_fc_layers = len(structure)
structure.insert(0, self.n_inputs)
with vs.variable_scope(self.scope):
for lr_idx in range(n_fc_layers):
n_in, n_out = structure[lr_idx], structure[lr_idx+1]
self.w_full.append(
vs.get_variable(
"FullWeights{}".format(lr_idx),
[n_in, n_out],
dtype=tf.float32,
initializer=tf.random_uniform_initializer(
minval=-tf.sqrt(tf.constant(6.0)/(n_in + n_out)),
maxval=tf.sqrt(tf.constant(6.0)/(n_in + n_out))
)
)
)
self.b_full.append(
vs.get_variable(
"FullBiases{}".format(lr_idx),
[n_out],
dtype=tf.float32,
initializer=tf.constant_initializer(0.0)
)
)
structure.insert(0, self.n_inputs)
した後、あなたは[n_inputsを持っています、第1FC層サイズ、第2FC層サイズ...出力層サイズ]
お返事ありがとうございました。私は、あなたが示したコード行のどこに 'np.random.randn(n)'があるのか分かりません。標準偏差引数で 'tf.random_normal'を使うのではなく、' np.random.randn(n) 'で重み行列の各重みを手動で設定したいと思います。これは達成できますか? – Kalanit
私はtf.random.Xを使用します。 np.random.randn(n)をtf.randomに置き換えて、同じことをすることができます。 https://www.tensorflow.org/versions/r0.8/api_docs/python/constant_op.html#random-tensorsをご覧ください。 –
@Kalanitちょっと興味がありますが、 'randn'は' random_normal'とは何が違うと思いますか? –