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

运行结果:

相关推荐
喵手2 分钟前
Python爬虫实战:数据治理实战 - 基于规则与模糊匹配的店铺/公司名实体消歧(附CSV导出 + SQLite持久化存储)!
爬虫·python·数据治理·爬虫实战·零基础python爬虫教学·规则与模糊匹配·店铺公司名实体消岐
喵手3 分钟前
Python爬虫实战:国际电影节入围名单采集与智能分析系统:从数据抓取到获奖预测(附 CSV 导出)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集数据csv导出·采集国际电影节入围名单·从数据抓取到获奖预测
OpenCSG22 分钟前
对比分析:CSGHub vs. Hugging Face:模型管理平台选型对
人工智能·架构·开源
云上凯歌23 分钟前
传统老旧系统的“AI 涅槃”:从零构建企业级 Agent 集群实战指南
人工智能
cskywit31 分钟前
破解红外“魅影”难题:WMRNet 如何以频率分析与二阶差分重塑小目标检测?
人工智能·深度学习
派葛穆32 分钟前
Python-PyQt5 安装与配置教程
开发语言·python·qt
小乔的编程内容分享站40 分钟前
记录使用VSCode调试含scanf()的C语言程序出现的两个问题
c语言·开发语言·笔记·vscode
无名修道院40 分钟前
AI大模型应用开发-RAG 基础:向量数据库(FAISS/Milvus)、文本拆分、相似性搜索(“让模型查资料再回答”)
人工智能·向量数据库·rag·ai大模型应用开发
自可乐42 分钟前
Milvus向量数据库/RAG基础设施学习教程
数据库·人工智能·python·milvus
旅途中的宽~42 分钟前
【深度学习】通过nohup后台运行训练命令后,如何通过日志文件反向查找并终止进程?
linux·深度学习