用户:
不知道干啥的小睿查看:0 回复:3 评论:0 创建时间:2021-07-24T12:31:45
【作品展示】

【作品介绍】
输入一个数(1代表猫,2代表狗,3代表鸡,4代表鸭),输出这个数是猫的概率还有,这个代码有个Syntaxerror,但不知道怎么改,使用前要改一下
【作品源代码】
import math
import random
import numpy as np
import random as rd
import matplotlib.pyplot as plt
# sigmoid ↓
def S(x):
return (1 / (1 + np.exp(-1 * x))
# 初始化参数
w11_1 = 0
b11 = 0
w21_1 = 0
b21 = 0
# 学习率
xxl = 0.01
# 学习
for _ in range(50):
# 设置输入和输出
X = random.randint(1, 4)
if (X == 1):
wty = 100
else:
wty = 0
Y11 = S(w11_1 * X + b11)
Y12 = S(w21_1 * Y11 + b21)
# 求出误差
e21 = (wty - Y12)
# 求出各个地方的梯度(导数),为等会儿梯度下降做准备
de21d21 = (S(e21) * (1 - S(e21)))
d21dw21_1 = Y11
d21db21 = 1
# (链式法则)↓
de21dw21_1 = (de21d21 * d21dw21_1)
de21db21 = (de21d21 * d21db21)
# (链式法则)↑
d21d11 = w21_1
e11 = (de21d21 * d21d11)
de11d11 = (S(e11) * (1 - S(e11)))
d11dw11_1 = X
d11db11 = 1
de11dw11_1 = (de11d11 * d11dw11_1)
de11db11 = (de11d11 * d11db11)
# 梯度下降
w21_1 -= (xxl * de21dw21_1)
b21 -= (xxl * de21db21)
w11_1 -= (xxl * de11dw11_1)
b11 -= (xxl * de11db11)
# 互动
x = int(input(''))
y11 = S(w11_1 * x + b11)
y21 = S(w21_1 * x + b21)
y21 = str(y21 * 100)
print(y21)
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn