Tensorflow中的XOR实现
在这篇文章中,我们将学习如何在Tensorflow中实现一个XOR门。在我们进入Tensorflow实现之前,我们先看看XOR门的真值表,以深入了解XOR。
X | Y | X(XOR)Y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
从上面的真值表中,我们可以知道,只有当其中一个输入是1的时候,门的输出才是1,如果两个输入都是相同的,那么输出就是0。
步骤
我们将从使用tensorflow实现XOR开始。
第1步:导入所有需要的库。这里我们使用的是tensorflow 和numpy。
步骤2:为输入和输出创建占位符。输入将是(4 X 2)的形状,输出将是(4 × 1)的形状。
第3步:创建训练输入和输出。
第四步:给出一个标准的学习率和模型应该训练的epochs的数量。
第5步:为模型创建一个隐藏层。隐蔽层有权重和偏置。隐蔽层的操作是将提供的输入与权重相乘,然后在乘积上加上偏置。然后把这个答案交给Relu激活函数,给下一层提供输出。
第六步:为模型创建一个输出层。输出层与隐藏层类似,具有权重和偏置,并具有相同的功能,但我们使用Sigmoid激活函数来获得0和1之间的输出,而不是Relu激活。
第7步:创建一个损失/成本函数。这将计算出模型在给定数据上训练的成本。这里我们做预测输出值和实际输出值的RMSE。RMSE–均方根误差。
第8步:创建一个训练变量,用给定的成本/损失函数和ADAM优化器来训练模型,以使损失最小化。
第9步:现在所有需要的东西都被初始化了,我们将启动一个Tensorflow会话,通过初始化上面声明的所有变量来开始训练。
第10步:训练模型并给出预测结果。在这里,我们对输入和输出进行训练,因为我们正在进行监督学习。然后,我们计算每1000个epochs的成本,最后预测输出并与实际输出进行测试。
以下是完整的实现方案:
输出:
上述程序的输出