标准正态分布的数据 tensorflow 实现正态分布图,python 编程,数据分析和人工智能

import tensorflow as tf
import matplotlib.pyplot as plt

# 设置随机种子以获得可重复的结果
tf.random.set_seed(42)

# 生成正态分布的数据
# mean=0 和 stddev=1 表示生成标准正态分布的数据
# shape=(1000,) 表示生成1000个数据点
data = tf.random.normal(mean=0, stddev=1, shape=(1000,))

# 将Tensor转换为NumPy数组,以便Matplotlib可以处理
data_np = data.numpy()

# 绘制直方图
plt.figure(figsize=(8, 6))  # 设置图形的大小
plt.hist(data_np, bins=30, density=True, alpha=0.6, color='g')  # bins=30 表示分成30个柱状区域
plt.title("Normal Distribution")  # 设置标题
plt.xlabel("Value")  # 设置x轴标签
plt.ylabel("Density")  # 设置y轴标签
plt.grid(True)  # 显示网格

# 显示图形
plt.show()

import tensorflow as tf
import matplotlib.pyplot as plt# 设置随机种子以获得可重复的结果
tf.random.set_seed(42)# 生成正态分布的数据
# mean=0 和 stddev=1 表示生成标准正态分布的数据
# shape=(1000,) 表示生成1000个数据点
data = tf.random.normal(mean=0.5, stddev=0.5, shape=(1000,))
# data = tf.random.truncated_normal(mean=5, stddev=1, shape=(1000,), lower=-2, upper=2)
# data = tf.random.truncated_normal(mean=0.5, stddev=0.15, shape=(1000,), minval=0, maxval=1)# # 使用 Sigmoid 函数进行变换
# data = tf.sigmoid(data)
# 手动截断超出0和1的值
# data = tf.clip_by_value(data, clip_value_min=0, clip_value_max=1)
# 将Tensor转换为NumPy数组,以便Matplotlib可以处理
data_np = data.numpy()# 绘制直方图
plt.figure(figsize=(8, 6))  # 设置图形的大小
plt.hist(data_np, bins=30, density=True, alpha=0.6, color='g')  # bins=30 表示分成30个柱状区域
plt.title("Normal Distribution")  # 设置标题
plt.xlabel("Value")  # 设置x轴标签
plt.ylabel("Density")  # 设置y轴标签
plt.grid(True)  # 显示网格# 显示图形
plt.show()

如果要一些自定义的特殊的分布图 ,如下

from __future__ import absolute_import, division, print_function, unicode_literalsfrom sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler"""
图 3 展示了建议的 GAN 结构。与普通 GAN 不同,本研究在 FSO 信道模型中采用了条件 GAN(CGAN)[19]。
为了学习信道响应分布 p(y|x),输入信号 x 被转换成条件向量 x̂,作为输出信号 y 的标签。噪声向量符合正态分布 z~N(0,1)
,其长度设为 52,以确保生成满足 p(y|x) 的任意数据。因此,经过竞争对抗训练后,生成器可以等价于信道模型,
并在输入数据 x 的条件下生成新的信道输出数据"""
import csv
import sysfrom tqdm import trangesys.path.append('/home/aistudio/external-libraries')"""
错误信息表明在训练一个自编码器模型时出现了问题,具体是在计算分类准确度(categorical_accuracy)时,y_true 和 y_pred 的维度不匹配。y_true 的形状是 [500],而 y_pred 的形状是 [8000]。这通常发生在模型的输出层和标签数据的形状不一致时。在这种情况下,你需要确保模型的输出层的维度与你的标签数据的维度相匹配。如果你的任务是多分类问题,并且每个类别都有一个唯一的整数标签(即标签是稀疏的),那么你可以使用 sparse_categorical_crossentropy 作为损失函数,并使用 sparse_categorical_accuracy
作为评估指标。这样,你的模型输出层的维度应该与类别的数量相匹配。例如,如果你有10个类别,模型的输出层应该有10个神经元,每个神经元对应一个类别的得分。然后,你可以使用 tf.keras.layers.Dense(10, activation='softmax') 来确保输出是10个类别的概率分布。如果你的标签是 one-hot 编码的,那么你应该使用 categorical_crossentropy 作为损失函数,并使用 categorical_accuracy 作为评估指标。在这种情况下,y_true 应该是一个形状为 [batch_size, num_classes] 的张量,其中 num_classes 是类别的数量。请检查你的模型结构和标签数据,确保它们的维度是一致的。如果你的模型输出是多维的,你可能需要使用 tf.keras.layers.Flatten() 层来将输出展平,以匹配标签数据的形状。此外,如果你的模型是一个自编码器,并且你的目的是重构输入数据,那么你需要确保编码器的输出和解码器的输出与输入数据的形状相匹配。这通常意味着你的自编码器的输出层应该有与输入数据相同数量的神经元。"""
# 导入必要的库import subprocess  # 用于执行系统命令
import numpy as np  # 数学运算
import matplotlib.pyplot as plt  # 绘图库
import warnings  # 警告控制from keras import modelswith warnings.catch_warnings():warnings.filterwarnings("ignore", category=FutureWarning)  # 忽略未来警告import tensorflow as tf  # 导入 TensorFlow
import os  # 操作系统接口
from tensorflow import keras  # 导入 Keras
import time  # 时间库
import pandas as pd  # 数据处理库
import sys  # 系统相关的操作和参数# 确保 Python 版本
assert sys.version_info >= (3, 5)import matplotlib as mpl  # 导入 matplotlib 设置# 设置 matplotlib 的参数
mpl.rc('axes', labelsize=14)
mpl.rc('xtick', labelsize=12)
mpl.rc('ytick', labelsize=12)# 打印 TensorFlow 版本
print(tf.__version__)import tensorflow as tf
from tensorflow import keras
# from sklearn.preprocessing import OneHotEncoder
# import pandas as pd
from scipy import special# 设置随机种子以确保结果可复现
np.random.seed(42)
tf.random.set_seed(42)# 初始化参数
k = 4  # 每个消息的信息位数
M = 2 ** k  # 消息空间大小
n = 64  # 每个消息使用的实数通道数
print(M)  # 打印 M 的值feature_num = n  # 批大小
batch_size = 100SNR = 7  # 信噪比(dB)
randN_initial = keras.initializers.RandomNormal(mean=0.0, stddev=0.05, seed=None)  # 初始化器
hist_range = 2
# 因为运行多次,需要弄个均值
output_hist = tf.random.normal([1, 100], mean=0.2, stddev=0.05)
output_hist2 = tf.random.normal([1, 100], mean=1, stddev=0.24)
# inputs_hist = np.mean(inputs, axis=0)
# fake_output_hist1 = np.reshape(output_hist, [-1, ])
fake_output_hist1 = output_hist
plt.figure()
plt.hist(fake_output_hist1, bins=100, range=(-hist_range, hist_range), density=True, histtype='step')
plt.hist(output_hist2, bins=100, range=(-hist_range, hist_range), density=True, histtype='step')
plt.title("noise distribution")
plt.legend(["generator", "target"])
# plt.savefig(f'training_samples/wgan_fso_tf_epoch_{epoch}.png')
plt.show()
plt.close()

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

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

相关文章

postman变量,断言,参数化

环境变量 1.创建环境变量 正式环境是错误的,方便验证环境变化 2.在请求中添加变量 3.运行前选择环境变量 全局变量 能够在任何接口访问的变量 console中打印日志 console.log(responseBody);//将数据解析为json格式 var data JSON.parse(responseBody); conso…

k8s中pod的管理

资源管理介绍 在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes。 kubernetes的本质上就是一个集群系统,用户可以在集群中部署各种服务 所谓的部署服务,其实就是在kubernetes集群中运行一个个的容器&…

NLP: SBERT介绍及sentence-transformers库的使用

1. Sentence-BERT Sentence-BERT(简写SBERT)模型是BERT模型最有趣的变体之一,通过扩展预训练的BERT模型来获得固定长度的句子特征,主要用于句子对分类、计算两个句子之间的相似度任务。 1.1 计算句子特征 SBERT模型同样是将句子标记送入预训练的BERT模型…

Web3 游戏周报(9.22 - 9.28)

回顾上周的区块链游戏概况,查看 Footprint Analytics 与 ABGA 最新发布的数据报告。 【9.22-9.28】Web3 游戏行业动态: Axie Infinity 将 Fortune Slips 的冷却时间缩短至 24 小时,从而提高玩家的收入。 Web3 游戏开发商 Darkbright Studios…

【源码+文档+调试讲解】二手物品调剂系统NODEJS

摘 要 二手物品调剂系统是一种在线平台,旨在促进用户之间的二手物品交易。该系统提供了一个方便的界面,让用户能够发布、浏览和搜索二手物品信息。用户可以根据自己的需求和兴趣,筛选出合适的物品,并通过系统与卖家进行联系。系统…

手撕Python之生成器、装饰器、异常

1.生成器 生成器的定义方式&#xff1a;在函数中使用yield yield值&#xff1a;将值返回到调用处 我们需要使用next()进行获取yield的返回值 yield的使用以及生成器函数的返回的接收next() def test():yield 1,2,3ttest() print(t) #<generator object test at 0x01B77…

气象大模型预测天气预报的原理

随着气象科学的发展&#xff0c;气象预报已经从早期的经验判断发展到基于数值模拟的高精度预测。气象大模型&#xff0c;作为一种强大的计算工具&#xff0c;利用大规模数据和复杂的物理模型&#xff0c;提供了精准的天气预报服务。本文将介绍气象大模型的原理&#xff0c;以及…

嵌入式面试——FreeRTOS篇(六) 任务通知

本篇为&#xff1a;FreeRTOS 任务通知篇 任务通知简介 1、任务通知介绍 答&#xff1a; 任务通知&#xff1a;用来通知任务的&#xff0c;任务控制块中的结构体成员变量ulNotifiedValue就是这个通知值。 使用队列、信号量、事件标志组时都需要另外创建一个结构体&#xff0c…

新个性化时尚解决方案!Prompt2Fashion:自动生成多风格、类型时尚图像数据集。

今天给大家介绍一种自动化生成时尚图像数据的方法Prompt2Fashion。 首先创建了一组描述&#xff0c;比如“适合婚礼的休闲风格服装”&#xff0c;然后用这些描述来指导计算机生成图像。具体来说&#xff0c;他们使用了大型语言模型来写出这些服装的描述&#xff0c;接着将这些描…

SpringBoot统一日志框架

在项目开发中&#xff0c;日志十分的重要&#xff0c;不管是记录运行情况还是定位线上问题&#xff0c;都离不开对日志的分析。 1.日志框架的选择 市面上常见的日志框架有很多&#xff0c;它们可以被分为两类&#xff1a;日志门面&#xff08;日志抽象层&#xff09;和日志实…

【万字长文】Word2Vec计算详解(三)分层Softmax与负采样

【万字长文】Word2Vec计算详解&#xff08;三&#xff09;分层Softmax与负采样 写在前面 第三部分介绍Word2Vec模型的两种优化方案。 【万字长文】Word2Vec计算详解&#xff08;一&#xff09;CBOW模型 markdown行 9000 【万字长文】Word2Vec计算详解&#xff08;二&#xff0…

网站集群批量管理-Ansible(playbook)

1.剧本概述 1. playbook 文件,用于长久保存并且实现批量管理,维护,部署的文件. 类似于脚本存放命令和变量 2. 剧本yaml格式,yaml格式的文件:空格,冒号 2. 区别 ans-playbookans ad-hoc共同点批量管理,使用模块批量管理,使用模块区别重复调用不是很方便,不容易重复场景部署服务…

LeetCode讲解篇之377. 组合总和 Ⅳ

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 总和为target的元素组合个数 可以由 总和为target - nums[j]的元素组合个数 转换而来&#xff0c;其中j为nums所有元素的下标 而总和target - nums[j]的元素组合个数 可以由 总和为target - nums[j] - nums[k]的…

物联网:一种有能力重塑世界的技术

物联网&#xff08;IoT&#xff09;近年来对我们的日常生活产生了如此积极的影响&#xff0c;以至于即使是不懂技术的人也开始相信它所带来的便利以及敏锐的洞察力。 物联网是一场数字技术革命&#xff0c;其意义甚至比工业革命更为重大。物联网是仍处于起步阶段的第四次工业革…

【数据结构】栈和队列 + 经典算法题

目录 前言 一、栈 二、栈的实现 三、栈的循环遍历演示 四、栈的算法题 // 一、队列 二、队列的实现 三、使用演示 四、队列的算法题 总结 前言 本文完整实现了栈和队列的数据结构&#xff0c;以及栈和队列的一些经典算法题&#xff0c;让我们更加清楚了解这两种数据…

(Django)初步使用

前言 Django 是一个功能强大、架构良好、安全可靠的 Python Web 框架&#xff0c;适用于各种规模的项目开发。它的高效开发、数据库支持、安全性、良好的架构设计以及活跃的社区和丰富的文档&#xff0c;使得它成为众多开发者的首选框架。 目录 安装 应用场景 良好的架构设计…

关于AOT、JIT编译模式以及基于静态编译构建微服务应用

JDK 9 引入了一种新的编译模式 AOT(Ahead of Time Compilation) 。和 JIT 不同的是&#xff0c;这种编译模式会在程序被执行前就将其编译成机器码&#xff0c;属于静态编译&#xff08;C、 C&#xff0c;Rust&#xff0c;Go 等语言就是静态编译&#xff09;。AOT 避免了 JIT 预…

洛谷P5648

洛谷P5648 这题花了很长时间&#xff0c;是在线段树题单里找到的&#xff08; &#xff09;。有线段树做法&#xff0c;但是我感觉可能比倍增做法更难看懂。以后有空再看看吧。感觉线段树现在只会板子题&#xff0c;绿稍微难点可能就不会。 花了很久时间之后&#xff0c;就觉得…

如何让你的Mac右键菜单栏更加的丰富多样

Mac电脑的右键菜单栏不如Windows的丰富&#xff0c;虽然可以在系统设置一些常用功能&#xff0c;但是种类不够丰富&#xff0c;这对于一些用惯了Windows的人来说可以说是非常的不习惯&#xff0c;不管是工作使用还是日常使用来说都有一些影响&#xff0c;如何才能让Mac的右键菜…

Vite + Vue3 使用 cdn 引入依赖,并且把外部 css、js 文件内联引入

安装插件 pnpm i element-plus echarts axios lodash -S在 vite.config.js 引用 注意事项&#xff1a;element-plus 不能在 vite.config.js 中使用按需加载&#xff0c;需要在 main.js 中全局引入&#xff1b; import { resolve } from path import { defineConfig } from v…