机器学习的简单上机任务
python手写代码
import numpy as np
import pandas as pd
# 借助np实现好输入情况
input_data = np.array([3,5])
# 设置好对应的权重,主要是两层隐藏层的权重和输出层的权重
weights = {
'h11' : np.array([2,4]),
'h12' : np.array([4,-5]),
'h21' : np.array([-1,1]),
'h22' : np.array([2,2]),
'out' : np.array([-3,7])
}
# 定义好激活函数,这里没有选用sigmoid函数,而是选用tanh的激活函数,二者应用场景不同,在实验报告中详细分析给出
def tanh(x):
return (np.exp(x)-np.exp(-x)) / (np.exp(x) + np.exp(-x))
# 计算相应的权重,输入数据与第一层隐藏层权重相乘计算
hidden_11_value = tanh((input_data * weights['h11']).sum())
hidden_12_value = tanh((input_data * weights['h12']).sum())
hidden1_output = np.array([hidden_11_value, hidden_12_value])
# 第一层输入与第二层权重的相乘结果,并输入到激活函数中进行非线性变换
hidden_21_value = tanh((hidden1_output * weights['h21'] ).sum())
hidden_22_value = tanh((hidden1_output * weights['h22']) .sum())
hidden2_output = np.array([hidden_21_value, hidden_22_value])
# 输出层,这里没再使用激活函数
output = (hidden2_output * weights['out']).sum()
print(output)
输出如下所示