我正在使用Windows 10,Python 3.5和tensorflow 1.1.0。我有以下脚本:
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 = Dense(10, activation='relu')(input_x)
然后dense1
不是图层,而是图层的输出。该层是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()
问题内容: 我已经使用CNN训练了二进制分类模型,这是我的代码 在这里,我想像TensorFlow一样获得每一层的输出,我该怎么做? 问题答案: 你可以使用以下命令轻松获取任何图层的输出: 对于所有图层,请使用以下命令: 注:为了模拟差使用learning_phase如1.在layer_outs以其它方式使用0. 编辑:(基于评论) 创建张量函数,该函数随后用于从给定输入的符号图中获取输出。 现在
问题内容: 我想重置(随机化)我的Keras(深度学习)模型中所有层的权重。原因是我希望能够使用不同的数据拆分多次训练模型,而不必每次都进行(缓慢的)模型重新编译。 受此讨论的启发,我正在尝试以下代码: 但是,它仅部分起作用。 部分是因为我检查了一些layer.get_weights()值,但它们似乎有所变化。但是,当我重新开始训练时,成本值比第一次运行时的初始成本值低得多。几乎就像我已经成功重置
我正在使用MNIST数据集,我正在使用keras来训练卷积神经网络。关于权重矩阵,有些东西我不明白。 输入层有28x28=784个神经元。然后我使用: 在我训练模型后,把W=模型。get\u weights(),I打印W[I]。每个i的形状并获得: 据我所知,这意味着对于第一个隐藏层有32个8x8=64的图像(因为(28-7)/3 1=8)因此第一个隐藏层中有64x32=2048个神经元。 下一部
问题内容: 我正在尝试转学;为此,我想删除神经网络的最后两层并添加另外两层。这是一个示例代码,它也会输出相同的错误。 我使用删除了该图层,但是当我尝试添加其输出时出现此错误 AttributeError:“模型”对象没有属性“添加” 我知道该错误的最可能原因是不当使用。我应该使用其他什么语法? 编辑: 我试图在keras中删除/添加图层,但不允许在加载外部重物后添加它。 它显示此错误 问题答案:
怎么啦?
我有一个简单的顺序神经网络,我想用它来训练分类器。它由一个输入层、三个隐藏层和一个输出层组成,如下所示: 如何提取与每个隐藏层关联的权重。最终目标是使用激活函数计算每个标签成为正确标签的概率。 希望你能理解。感谢您的任何帮助。