Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python XOR多层感知器:如何将训练数据的子集作为参数传递以获得预测值_Python_Tensorflow_Neural Network_Xor - Fatal编程技术网

Python XOR多层感知器:如何将训练数据的子集作为参数传递以获得预测值

Python XOR多层感知器:如何将训练数据的子集作为参数传递以获得预测值,python,tensorflow,neural-network,xor,Python,Tensorflow,Neural Network,Xor,根据训练后的网络模型(假设理解),如何传递张量,不仅是[8,3],而且能够传递[1,3],例如[0,0,1]或其他。我想我是在重新表述我的问题。不幸的是,TensorFlow不允许图形更改,这意味着输入(和中间)张量必须具有恒定的大小。为了区分培训和测试,您可以使用共享变量,如下所述:谢谢。现在我设法输入了相同张量大小的数据。然而,我认为在网络训练之后,无论输入序列是否不同,都应该得到相同的结果。通过输入这个,我得到了不同的预测。temp=tf.cast((tf.Variable([[0,1,0

根据训练后的网络模型(假设理解),如何传递张量,不仅是[8,3],而且能够传递[1,3],例如[0,0,1]或其他。我想我是在重新表述我的问题。

不幸的是,TensorFlow不允许图形更改,这意味着输入(和中间)张量必须具有恒定的大小。为了区分培训和测试,您可以使用共享变量,如下所述:

谢谢。现在我设法输入了相同张量大小的数据。然而,我认为在网络训练之后,无论输入序列是否不同,都应该得到相同的结果。通过输入这个,我得到了不同的预测。temp=tf.cast((tf.Variable([[0,1,0],[0,0,0],[0,1,0],[0,0,1],[1,0,1],[1,1,1],[1,1,1]),tf.float32)tempInModel=神经模型(temp)。使用tf.Session()作为sess:sess.run(tf.global_variables_initializer())print(sess.run(tempInModel,feed_dict={X:train_X,Y:train_Y})请从变量temp开始复制并通过以上内容。也许我做错了?请帮忙
#imports
import tensorflow as tf
#Variables
hidden_layer1_node= 2
hidden_layer2_node= 1


X = tf.placeholder('float',[8,3])
Y = tf.placeholder('float',[8,1])

#neural model
def neural_model(x):
layer1_weight = {'weight':tf.Variable(tf.random_normal([3,hidden_layer1_node])),
                'bias':tf.Variable(tf.zeros([hidden_layer1_node]))}

layer2_weight = {'weight':tf.Variable(tf.random_normal([2,hidden_layer2_node])),
                'bias':tf.Variable(tf.zeros([hidden_layer2_node]))}


zl1 = tf.add(tf.matmul(x,layer1_weight['weight']), layer1_weight['bias'])
prediction1 = tf.sigmoid(zl1)

zl2 = tf.add(tf.matmul(prediction1,layer2_weight['weight']), layer2_weight['bias'])
return tf.sigmoid(zl2)

prediction = neural_model(X)


#cost function
def cost_function():
loss = tf.reduce_mean(-1*((Y*tf.log(prediction))+((1-Y)*tf.log(1.0-prediction))))
return loss

#Optimization
loss = cost_function()
training = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

#training stage
train_x = [[0,0,0],[0,0,1],[0,1,0],[0,1,1],[1,0,0],[1,0,1],[1,1,0],[1,1,1]]
train_y = [[0],[1],[1],[0],[1],[0],[0],[1]]
epoch = 10

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())

    for i in range(epoch):
        for _ in range(5000):
            sess.run(training, feed_dict={X:train_x,Y:train_y})

        print(sess.run(loss,feed_dict={X:train_x,Y:train_y}))
    print(sess.run(prediction,feed_dict={X:train_x,Y:train_y}))