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

运行结果:

相关推荐
小二·6 小时前
Python Web 开发进阶实战:性能压测与调优 —— Locust + Prometheus + Grafana 构建高并发可观测系统
前端·python·prometheus
leo__5206 小时前
基于MATLAB的交互式多模型跟踪算法(IMM)实现
人工智能·算法·matlab
脑极体7 小时前
云厂商的AI决战
人工智能
玄〤7 小时前
黑马点评中 VoucherOrderServiceImpl 实现类中的一人一单实现解析(单机部署)
java·数据库·redis·笔记·后端·mybatis·springboot
njsgcs7 小时前
NVIDIA NitroGen 是强化学习还是llm
人工智能
七牛云行业应用7 小时前
重构实录:我删了 5 家大模型 SDK,只留了 OpenAI 标准库
python·系统架构·大模型·aigc·deepseek
知乎的哥廷根数学学派7 小时前
基于多模态特征融合和可解释性深度学习的工业压缩机异常分类与预测性维护智能诊断(Python)
网络·人工智能·pytorch·python·深度学习·机器学习·分类
mantch7 小时前
Nano Banana进行AI绘画中文总是糊?一招可重新渲染,清晰到可直接汇报
人工智能·aigc
编程小白_正在努力中8 小时前
第1章 机器学习基础
人工智能·机器学习
一人の梅雨8 小时前
亚马逊SP-API商品详情接口轻量化实战:合规与商业价值提取指南
python