Tensorflow2.笔记 - 单层感知机(单输出,多输出)Single Layer Perceptron

本笔记主要记录单层感知机的相关内容,包括单层单输出,和单层多输出。

复制代码
import tensorflow as tf
import numpy as np

tf.__version__


#单层单输出感知机,逻辑回归很类似,主要区别就是激活函数和损失函数不同
#单层感知机的激活函数通常使用sign函数
#逻辑回归的激活函数通常使用sigmoid
#参考资料:https://blog.csdn.net/weixin_60737527/article/details/125455264
#下面的例子为简单的逻辑回归的示例
#x表示1个样本,样本数据维度是3
x = tf.random.normal([1,3])
#权值w默认设置为1,偏置b默认为1
w = tf.ones([3,1])
b = tf.ones([1])
#y表示真实标签
y = tf.constant([1])

with tf.GradientTape() as tape:
    tape.watch([w,b])
    logits = tf.sigmoid(x@w+b)
    loss = tf.reduce_mean(tf.losses.MSE(y, logits))

#求解梯度
grads = tape.gradient(loss, [w, b])
print("Gradients of w:\n", grads[0].numpy())
print("Gradients of b:\n", grads[1].numpy())

#单层多输出感知机
#x表示2个样本,样本数据维度是4
x = tf.random.normal([2,4])
w = tf.random.normal([4,3])
b = tf.zeros([3])
#y表示真实的标签值
y = tf.constant([2,0])

with tf.GradientTape() as tape:
    tape.watch([w,b])
    prob = tf.nn.softmax(x@w+b, axis=1)
    loss = tf.reduce_mean(tf.losses.MSE(tf.one_hot(y, depth=3), prob))

#求解梯度
grads = tape.gradient(loss, [w,b])
print("Gradients of w:\n", grads[0].numpy())
print("Gradients of b:\n", grads[1].numpy())

运行结果:

相关推荐
量子-Alex1 分钟前
【遥感图像分类】【综述】遥感影像分类:全面综述与应用
人工智能·分类·数据挖掘
Awesome Baron3 分钟前
《Learning Langchain》阅读笔记8-RAG(4)在vector store中存储embbdings
python·jupyter·chatgpt·langchain·llm
张申傲3 分钟前
多模态(3):实战 GPT-4o 视频理解
人工智能·chatgpt·aigc·多模态
阡之尘埃5 分钟前
Python数据分析案例73——基于多种异常值监测算法探查内幕交易信息
人工智能·python·机器学习·数据分析·异常检测·无监督学习
猫先生Mr.Mao13 分钟前
2025年3月AGI技术月评|技术突破重构数字世界底层逻辑
人工智能·aigc·大语言模型·agi·多模态·行业洞察
丰锋ff25 分钟前
考研英一学习笔记
笔记·学习·考研
睿创咨询30 分钟前
科技与商业动态简报
人工智能·科技·ipd·商业
科技在线31 分钟前
科技赋能建筑新未来:中建海龙模块化建筑产品入选中国建筑首批产业化推广产品
大数据·人工智能
HED41 分钟前
用扣子快速手撸人生中第一个AI智能应用!
前端·人工智能
极小狐43 分钟前
极狐GitLab 如何 cherry-pick 变更?
人工智能·git·机器学习·gitlab