我们如何在Tensorflow / Tflearn中获取隐藏层节点的值?

用户名

这是tflearn中XOR的代码。我希望获得倒数第二个隐藏层节点的值(而不是权重)。我该怎么办?更具体地说,我希望为下面给出的四个预测中的每一个获取第2层节点的值(在代码中给定)。

import tensorflow as tf
import tflearn

X = [[0., 0.], [0., 1.], [1., 0.], [1., 1.]]  #input
Y_xor = [[0.], [1.], [1.], [0.]]  #input_labels

# Graph definition
with tf.Graph().as_default():
    tnorm = tflearn.initializations.uniform(minval=-1.0, maxval=1.0)
    net = tflearn.input_data(shape=[None, 2], name='inputLayer')
    net = tflearn.fully_connected(net, 2, activation='sigmoid', weights_init=tnorm, name='layer1')
    net = tflearn.fully_connected(net, 1, activation='softmax', weights_init=tnorm, name='layer2')
    regressor = tflearn.regression(net, optimizer='sgd', learning_rate=2., loss='mean_square', name='layer3')

    # Training
    m = tflearn.DNN(regressor)
    m.fit(X, Y_xor, n_epoch=100, snapshot_epoch=False) 

    # Testing
    print("Testing XOR operator")
    print("0 xor 0:", m.predict([[0., 0.]]))
    print("0 xor 1:", m.predict([[0., 1.]]))
    print("1 xor 0:", m.predict([[1., 0.]]))
    print("1 xor 1:", m.predict([[1., 1.]]))

    layer1_var = tflearn.variables.get_layer_variables_by_name('layer1')
    layer2_var = tflearn.variables.get_layer_variables_by_name('layer2')
    inputLayer_var = tflearn.variables.get_layer_variables_by_name('inputLayer')

    #result = tf.matmul(inputLayer_var, layer1_var[0]) + layer1_var[1]

    with m.session.as_default():
        print(tflearn.variables.get_value(layer1_var[0]))   #layer1 weights
        print(tflearn.variables.get_value(layer1_var[1]))   #layer1 bias
        print(tflearn.variables.get_value(layer2_var[0]))   #layer2 weights
        print(tflearn.variables.get_value(layer2_var[1]))   #layer2 bias
艾里默·达米安(Aymeric Damien)

您可以重复使用共享相同会话(使用相同权重)的新模型:。请注意,您还可以保存“ m”模型,然后将其加载为“ m2”,从而得出相似的结果。

import tensorflow as tf
import tflearn

X = [[0., 0.], [0., 1.], [1., 0.], [1., 1.]]
Y_xor = [[0.], [1.], [1.], [0.]]

# Graph definition
with tf.Graph().as_default():
    tnorm = tflearn.initializations.uniform(minval=-1.0, maxval=1.0)
    net = tflearn.input_data(shape=[None, 2], name='inputLayer')
    layer1 = tflearn.fully_connected(net, 2, activation='sigmoid', weights_init=tnorm, name='layer1')
    layer2 = tflearn.fully_connected(layer1, 1, activation='softmax', weights_init=tnorm, name='layer2')
    regressor = tflearn.regression(layer2, optimizer='sgd', learning_rate=2., loss='mean_square', name='layer3')

    # Training
    m = tflearn.DNN(regressor)
    m.fit(X, Y_xor, n_epoch=100, snapshot_epoch=False) 

    # Testing
    print("Testing XOR operator")
    print("0 xor 0:", m.predict([[0., 0.]]))
    print("0 xor 1:", m.predict([[0., 1.]]))
    print("1 xor 0:", m.predict([[1., 0.]]))
    print("1 xor 1:", m.predict([[1., 1.]]))

    # You can create a new model, that share the same session (to get same weights)
    # Or you can also simply save and load a model
    m2 = tflearn.DNN(layer1, session=m.session)
    print(m2.predict([[0., 0.]]))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们如何在TensorFlow 2.0中使用lbfgs_minimize

来自分类Dev

我们如何在WebAPI中隐藏属性?

来自分类Dev

我们如何在Swift中评估bool值?

来自分类Dev

我们如何在NSMutableDictionary中存储浮动值

来自分类Dev

我们如何在迁移学习中为我们的培训设置标签?

来自分类Dev

我们如何在GDB中完成函数调用?

来自分类Dev

我们如何在Liferay中创建后退按钮

来自分类Dev

我们如何在Ruby中做图表示

来自分类Dev

我们如何在sphinx文档中嵌入图像?

来自分类Dev

我们如何在VSCode中编辑Rust文件?

来自分类Dev

我们如何在iPhone中检测人脸

来自分类Dev

我们如何在Dart中删除对象?

来自分类Dev

如何在我们的JavaScript中触发Bootstrap

来自分类Dev

我们如何在消息中抛出异常?

来自分类Dev

我们如何在Java中调用多个线程?

来自分类Dev

我们如何在Java中实现抽象?

来自分类Dev

如何在R中堆叠我们的数据

来自分类Dev

我们如何在角度8中添加链接?

来自分类Dev

我们如何在SwiftUI中访问List的DisclosureGroup?

来自分类Dev

我们如何在RetryContext中获得JobId?

来自分类Dev

我们如何在SwiftUI中读写相同的ObservableObject?

来自分类Dev

我们到底如何在Python中利用“ continue”?

来自分类Dev

我们如何在Linux中读取char *

来自分类Dev

我们如何在Ruby中做图表示

来自分类Dev

我们如何在collectionview中传递多个URL

来自分类Dev

我们如何在消息中抛出异常?

来自分类Dev

我们如何在Java中调用多个线程?

来自分类Dev

我们如何在VSCode中编辑Rust文件?

来自分类Dev

我们如何在Java中实现方法缓存