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())

运行结果:

相关推荐
PeterClerk2 分钟前
数据挖掘方向 CCF 期刊推荐(数据库 / 数据挖掘 / 内容检索)
数据库·人工智能·深度学习·数据挖掘·计算机期刊
小北方城市网3 分钟前
SpringBoot 集成 Elasticsearch 实战(全文检索与聚合分析):打造高效海量数据检索系统
java·redis·分布式·python·缓存
IMPYLH5 分钟前
Lua 的 Table 模块
开发语言·笔记·后端·junit·游戏引擎·lua
乾元5 分钟前
当奥本海默遇到图灵:AI 开启的网络安全新纪元
服务器·网络·人工智能·网络协议·安全·web安全
向量引擎5 分钟前
2026年AI架构实战:彻底解决OpenAI接口超时与封号,Python调用GPT-5.2/Sora2企业级架构详解(附源码+压测报告)
人工智能·python·架构
木头程序员6 分钟前
持续学习(Continual/Lifelong Learning)综述
大数据·人工智能·深度学习·机器学习
程途拾光1586 分钟前
模型微调 vs 上下文学习的成本效益对比
人工智能·深度学习·机器学习
丝斯201112 分钟前
AI学习笔记整理(51)——大模型之RAG优化技术
人工智能·笔记·学习
中國龍在廣州15 分钟前
35天,成了AI 模型的斩杀线
大数据·人工智能·深度学习·算法·机器人
JeffDingAI1 小时前
【Datawhale学习笔记】NLP初级分词技术
笔记·学习·自然语言处理