保存的神经网络的优化

时间:2018-10-24 20:23:43

标签: python tensorflow optimization neural-network

我有一个简单的前馈神经网络,代表一些输入和输出数据。我提取了权重和偏见。

现在,我想对保存的网络进行优化(作为一项功能),并找到将提供所需输出的输入。我的目标函数是所需输出与网络输出之间的差异。无论我尝试什么,都会遇到错误。我更改了初始猜测X0的类型,但没有任何效果。 我的代码如下设置-

with tf.Session() as sess:

# Extract data from Network
new_saver = tf.train.import_meta_graph('./Save_Network/my_model.meta')
new_saver.restore(sess, tf.train.latest_checkpoint('./Save_Network'))

weights_1 = tf.get_default_graph().get_tensor_by_name("weights_1:0")
biases_1 = tf.get_default_graph().get_tensor_by_name("biases_1:0")
weights_2 = tf.get_default_graph().get_tensor_by_name("weights_2:0")
biases_2 = tf.get_default_graph().get_tensor_by_name("biases_2:0")
weights_3 = tf.get_default_graph().get_tensor_by_name("weights_3:0")
biases_3 = tf.get_default_graph().get_tensor_by_name("biases_3:0")


def Objective1(c):
    layer_1 = tf.nn.relu(tf.add(tf.matmul(c, weights_1), biases_1))
    layer_2 = tf.nn.relu(tf.add(tf.matmul(layer_1, weights_2), biases_2))
    out_layer = tf.add(tf.matmul(layer_2, weights_3), biases_3)
    ObjFunc1 = tf.square(tf.subtract(OutputsNorm, out_layer))
    return ObjFunc1

x0 = np.float32([-0.2, 0.02, -0.5])
x0 = np.reshape(x0, (1, 3))
res = minimize(Objective1, x0, method='nelder-mead', options={'xtol': 1e-8, 'disp': True})

我遇到错误

TypeError: Input 'b' of 'MatMul' Op has type float32_ref that does not match type float64 of argument 'a'.

0 个答案:

没有答案