Tensorflow笔记(二):激活函数、优化器等、神经网络模型实现(商品销量预测)

import tensorflow as tf
import numpy as np
from tqdm import tqdm# ----------------------------- tensor常用函数2 -----------------------------------
a = tf.constant([1, 2, 3, 1, 2])
b = tf.constant([0, 1, 3, 4, 5])
c = tf.where(tf.greater(a, b), a, b)  # 若a>b,返回a对应位置的元素,否则返回b对应位置的元素rdm = np.random.RandomState(seed=110)  # 设置种子保证每次生成的随机数相同
a = rdm.rand()  # 返回一个随即标量
b = rdm.rand(2, 3)  # 返回维度为2行3列的随机数矩阵a2 = np.array([1, 2, 3])
b2 = np.array([4, 5, 6])
c2 = np.vstack((a2, b2))  # 将数组按垂直方向叠加x, y = np.mgrid[1:3:1, 2:4:0.5]  # 返回若干组维度相同的等差数组,格式为:起始值:结束值:步长
grid = np.c_[x.ravel(), y.ravel()]  # ravel函数将多维数组变为一维数组,c_则是使返回的间隔数值点配对y_ = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1], [1, 0, 0], [0, 1, 0]])  # 真实值(labels)
y = np.array([[12, 3, 2], [3, 10, 1], [1, 2, 5], [4, 6.5, 1.2], [3, 6, 1]])  # 预测值(logits)
# 可以直接用交叉熵损失函数计算
loss_ce = tf.nn.softmax_cross_entropy_with_logits(y_, y)
# 也可以先用softmax把y_转换成概率,然后再求交叉熵损失
y_pro = tf.nn.softmax(y)
loss_ce = tf.losses.categorical_crossentropy(y_, y_pro)# ----------------------------- 商品销量神经网络预测模型 -----------------------------------
epochs = 15000
lr = 0.005
seed = 110
cost = 1  # 成本1元
profit = 99  # 利润99元rdm = np.random.RandomState(seed)
x = rdm.rand(32, 2)
y_ = [[x1 + x2 + (rdm.rand() / 10 - 0.05)] for (x1, x2) in x]  # 用公式生成销量(带噪声)
x = tf.cast(x, dtype=tf.float32)w1 = tf.Variable(tf.random.normal([2, 1], stddev=1, seed=seed))for epoch in tqdm(range(epochs)):with tf.GradientTape() as tape:y = tf.matmul(x, w1)# 如果销量预测多了(y>y_)则浪费成本了,如果销量预测少了(y<y_)则利润少了loss = tf.reduce_sum(tf.where(tf.greater(y, y_), cost * (y - y_), profit * (y_ - y)))grads = tape.gradient(loss, w1)w1.assign_sub(lr * grads)if epoch % 500 == 0:print(f"after {epoch} training steps, w1 is {w1.numpy()}")
# 因为利润更大,所以最后参数的结果会尽量给出大于1的系数
# ----------------------------- 神经网络复杂度 -----------------------------------

# ---------------------------------------------- 学习率 ----------------------------------------------------

# ---------------------------------------------- 激活函数 ----------------------------------------------------

优秀的激活函数:
  非线性:激活函数非线性时,多层神经网络可逼近所有函数可微性:优化器大多用梯度下降更新参数
  单调性:当激活函数是单调的,能保证单层网络的损失函数是凸函数
  近似恒等性:f(x)≈x当参数初始化为随机小值时,神经网络更稳定
激活函数输出值的范围:
  激活函数输出为有限值时,基于梯度的优化方法更稳定
  激活函数输出为无限值时,建议调小学习率

关于激活函数的选择,对于初学者的建议:
    --首选relu激活函数:
    --学习率设置较小值;
    --输入特征标准化,即让输入特征满足以0为均值1为标准差的正态分布
    --初始参数中心化,即让随机生成的参数满足以0为均值,\sqrt{\tfrac{2}{feature-num}}为标准差的正态分布,其中feature-num表示当前层输入特征个数。

# ---------------------------------------------- 欠拟合与过拟合 -------------------------------------------------

欠拟合的解决方法:
    --增加输入特征项
    --增加网络参数
    --减少正则化参数
过拟合的解决方法:
    --数据清洗
    --增大训练集
    --采用正则化
    --增大正则化参数

# ---------------------------------------------- 优化器 -------------------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/752789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux下的多线程编程:原理、工具及应用(4)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;Flower of Life—陽花 0:34━━━━━━️&#x1f49f;──────── 4:46 &#x1f504; ◀️ ⏸ ▶️ ☰ …

RuoYi-Vue开源项目2-前端登录验证码生成过程分析

前端登录验证码实现过程 生成过程分析 生成过程分析 验证码的生成过程简单概括为&#xff1a;前端登录页面加载时&#xff0c;向后端发送一个请求&#xff0c;返回验证码图片给前端页面展示 前端页面加载触发代码&#xff1a; import { getCodeImg } from "/api/login&q…

Spring6--基础概念

1. 概述 1.1. Spring是什么 Spring 是一套广泛应用于 Java 企业级应用开发领域的轻量级开源框架&#xff0c;由 Rod Johnson 创立&#xff0c;旨在显著降低 Java 企业应用的复杂性&#xff0c;缩短开发周期&#xff0c;并提升开发效率。Spring 不仅适用于服务器端开发&#x…

三个案例,带你看懂智能时代支撑降本增效的底层逻辑

2003年&#xff0c;“神舟五号”成功登上太空&#xff0c;2007年&#xff0c;乔布斯初代苹果发布会&#xff0c;2016年“天宫二号”与“神州十一号”自动交会对接成功&#xff0c;2022年ChatGPT横空出市。 科技发展速度令人惊叹&#xff0c;一不留神就步入了下一个科技时代&am…

【vue elementUI】el-select和弹出框el-option样式调整,::v-deep失效

组件自带样式&#xff1a; 修改后样式&#xff1a; 注意修改弹出框样式需要修改一个属性&#xff1a; 此属性默认值为true&#xff0c;此时可以看到弹出框是放在外面的&#xff0c;没有在el-select里面。此时设置弹窗样式会不生效&#xff0c;::v-deep无效。 需要将此属性改为f…

JavaScript练手小技巧:数字反转时钟

样式基于博主的这篇文章&#xff1a; CSS3技巧38&#xff1a;3D 翻转数字效果-CSDN博客 既然可以实现翻转数字了&#xff0c;肯定就可以跟 JS 相结合去完成一些数字展示效果。 比如&#xff0c;数字反转时钟。 为了方便&#xff0c;所有 HTML 数字根据时间动态生成。因此&a…

vue3 element plus 上传下载

文章目录 上传下载 上传 /* html */ <el-upload v-model"fileId" class"avatar-uploader" ref"exampleUploadRef" :file-list"fileList" :show-file-list"false" action"/ys-three-year/ThreeReport/uploadFile&q…

Coarse-to-Fine Latent Diffusion for Pose-Guided Person Image Synthesis阅读笔记

连更&#xff01;&#xff01; 0 Abstract 先前的姿势引导图像合成方法简单的将人的外观与目标姿势进行对齐&#xff0c;这容易导致过拟合&#xff0c;因为缺乏对source person image的high-level semantic understanding&#xff1b;文章开发了一种新的训练范式&#xff1a;…

mudo服务器测试一

目录 长连接测试 测试代码 客户端 服务端 超时连接测试 测试代码 客户端 服务端 错误请求测试 测试代码 场景一 客户端 服务端 场景二 客户端 服务端 长连接测试 测试代码 /*长连接测试1: 创建一个客户端持续给服务器发送数据,直到超过时间看是否正常*/ #inc…

实用工具推荐----geek 卸载软件的神器

Geek Uninstaller 是一款软件卸载工具。它提供简单易用的界面和强大的卸载功能&#xff0c;能快速扫描和识别应用程序&#xff0c;并彻底删除与之相关的文件和注册表项&#xff0c;确保完全清除应用程序。它还可以监视应用程序安装过程&#xff0c;并记录创建的文件和注册表项…

计算机组成原理练习-计算机性能指标

CPU时间与IO时间 ------------------------------------------------------------------------------------------------------------------------------- 1.假定基准程序A在某计算机上的运行时间为100秒&#xff0c;其中90秒为CPU时间&#xff0c;其余 为l/O时间。若CPU速度…

WebGIS之实现查询地区天气并让地区高亮

一.预览>> 二.思路>> 根据搜索框的内容来进行页面视角的切换&#xff0c;对应的地区高亮&#xff0c;右边有关天气的地方实时更新&#xff0c;并且因为代码体量非常小&#xff0c;并没有选择在框架下完成。直接一个html文件搞定了&#xff0c;但实际上还是有一些坑…

带有超令牌采样的视觉转换器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读&#xff1a;带有超令牌采样的视觉转换器1、研究背景2、方法提出3、优势4、实验5、贡献 二、StokenAttention代码学习 摘要 本周主要阅读了CV…

Elasticsearch数据存储优化方案

优化Elasticsearch数据存储有助于提升系统性能、降低成本、提高数据查询效率以及增强系统的稳定性和可靠性。通常我们再优化Elasticsearch数据存储会遇到一些问题&#xff0c;导致项目卡壳。以下是优化Elasticsearch数据存储的一些重要作用&#xff1a; 1、问题背景 在某些场景…

AI系统性学习03—ChatGPT开发教程

文章目录 1、OpenAI关键概念⭐️2、OpenAI SDK介绍3、OpenAI API KEY&API 认证3.1 REST API安全认证 4、OpenAI模型⭐️4.1 模型分类4.2 GPT44.3 GPT-3.54.4 Embeddings 5、OpenAI快速入门6、Function calling(函数调用)⭐️⭐️⭐️6.1 应用场景6.2 支持function calling的…

打破传统,拥抱未来:解锁企业数字化转型成功的11把金钥匙

数字化转型是一个持续的过程&#xff0c;需要企业不断地适应新技术和市场变化。企业如何提高转型成功的可能性&#xff0c;并在竞争激烈的市场中保持领先地位。今天我们来解锁企业数字化转型成功的11把金钥匙。 清晰的战略目标&#xff1a; 首先&#xff0c;企业需要明确数字化…

如何高效接入 Flink: Connecter / Catalog API 核心设计与社区进展

本文整理自阿里云实时计算团队 Apache Flink Committer 和 PMC Member 任庆盛在 FFA 2023 核心技术专场&#xff08;二&#xff09;中的分享&#xff0c;内容主要分为以下四部分&#xff1a; Source APISink API将 Connecter 集成至 Table /SQL APICatalog API 在正式介绍这些 …

CornerStone之读取txt文件点数据

1. 页面标签 页面中目前只提供一个按钮来进行输入文件 <input click"importZeroOne" type"file" />2. 函数定义 在输入文件之后&#xff0c;执行importZeroOne函数&#xff0c;获得输入的文件&#xff0c;进行以下处理 const importZeroOne((eve…

Vue-Vuex

文章目录 vuex是什么什么时候使用Vuex原理Vuex环境搭建实例操作 vuex是什么 1.专门在vue中实现集中式状态&#xff08;数据&#xff09;管理的一个vue插件&#xff0c;对vue应用中多个组件的共享状态进行集中式的管理&#xff08;读/写&#xff09;&#xff0c;也是一种组件之…

【Django框架学习笔记】超详细的Python后端开发Django框架学习笔记

十二&#xff0c;Django框架 可以以下链接获取Django框架学习笔记,md文档和pdf文档 Django框架超详细的学习笔记&#xff0c;点击我获取 12.1 命令行操作 # 创建django项目 django-admin startproject aini# 启动项目 cd /mysite python3 manage.py runserver## 创建应用 …