用张量流中的多维输入计算hesse矩阵

时间:2017-06-08 13:29:31

标签: python multidimensional-array tensorflow

嘿,我是这个社区的新人。我开始使用tensorflow编程,我尝试从前馈神经网络计算预测y的Hesse矩阵和权重矩阵w。我的问题是由于渐变功能,我无法对权重矩阵进行整形。我总是这样:

  

TypeError:Fetch参数None具有无效类型。

如果没有整形,我无法计算yw的Hesse矩阵。 有人知道如何解决这个问题。

def neural_network_model(data,layer,nodes,dim,nclasses):

hidden_layer = []
for i in range(layer):
    if(i == 0):
        hidden_layer.append({'weights':tf.Variable(tf.random_normal([dim, nodes[i]])),
                          'biases':tf.Variable(tf.random_normal([nodes[i]]))})
    else:
        hidden_layer.append({'weights':tf.Variable(tf.random_normal([nodes[i-1], nodes[i]])),
                          'biases':tf.Variable(tf.random_normal([nodes[i]]))})

output_layer = {'weights':tf.Variable(tf.random_normal([nodes[layer-1], nclasses])),
                'biases':tf.Variable(tf.random_normal([nclasses])),}

l = []
for i in range(layer):
    if(i == 0):
        l.append(tf.add(tf.matmul(data,hidden_layer[i]['weights']), hidden_layer[i]['biases']))
        l[i] = tf.nn.relu(l[i],'sigmoid')
    else:
        l.append(tf.add(tf.matmul(l[i-1],hidden_layer[i]['weights']), hidden_layer[i]['biases']))
        l[i] = tf.nn.relu(l[i],'sigmoid')

output = tf.matmul(l[layer-1],output_layer['weights']) + output_layer['biases']


weights = []
for i in range(layer): 
    weights.append(tf.reshape(hidden_layer[i]['weights'],[-1]))
weights.append(tf.reshape(output_layer['weights'],[-1]))

def train_neural_network(data,layer,nodes,dim,nclasses,n,n2):
    gr = []
    prediction,weights2= neural_network_model(data,layer,nodes,dim,nclasses) 
    cost = tf.square(prediction-y)
    optimizer = tf.train.AdamOptimizer().minimize(cost)

    gradient = tf.gradients(prediction,weights2)
    hes = tf.hessians(prediction,weights2[0])
    train = func(n,n2)
    hm_epochs = 10

0 个答案:

没有答案
相关问题