本文介绍了如何在 Keras 中获取图层的权重?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是 Windows 10、Python 3.5 和 tensorflow 1.1.0.我有以下脚本:

I am using Windows 10, Python 3.5, and tensorflow 1.1.0. I have the following script:

import tensorflow as tf
import tensorflow.contrib.keras.api.keras.backend as K
from tensorflow.contrib.keras.api.keras.layers import Dense

tf.reset_default_graph()
init = tf.global_variables_initializer()
sess =  tf.Session()
K.set_session(sess) # Keras will use this sesssion to initialize all variables

input_x = tf.placeholder(tf.float32, [None, 10], name='input_x')
dense1 = Dense(10, activation='relu')(input_x)

sess.run(init)

dense1.get_weights()

我收到错误:AttributeError: 'Tensor' object has no attribute 'weights'

我做错了什么,如何获得 dense1 的权重?我看过 thisthis SO 帖子,但我仍然无法使其工作.

What am I doing wrong, and how do I get the weights of dense1? I have look at this and this SO post, but I still can't make it work.

推荐答案

如果你写:

dense1 = Dense(10, activation='relu')(input_x)

那么dense1不是一层,而是一层的输出.层是 Dense(10, activation='relu')

Then dense1 is not a layer, it's the output of a layer. The layer is Dense(10, activation='relu')

看来你的意思是:

dense1 = Dense(10, activation='relu')
y = dense1(input_x)

这是一个完整的片段:

import tensorflow as tf
from tensorflow.contrib.keras import layers

input_x = tf.placeholder(tf.float32, [None, 10], name='input_x')
dense1 = layers.Dense(10, activation='relu')
y = dense1(input_x)

weights = dense1.get_weights()

这篇关于如何在 Keras 中获取图层的权重?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-01 08:29