(200,10)和(10,)的ndarray数组怎么计算内积,得到的是什么维度?

news2024/11/17 10:05:40

今天在定义一个内积运算的时候,发现了一个模糊的问题,两个变量,都是ndarray数组,一个维度是(200,10),一个维度是(10,),两者求内积后得到的新数组的维度是(200,),该如何理解?

一、数据的维度

max_degree = 10 # 多项式的最大阶数
n_train, n_test = 100, 100 # 训练和测试数据集的大小
true_w = np.zeros(max_degree)
true_w[0 : 4] = np.array([5, 1.2, -3.4, 5.6])
features = np.random.normal(size = (n_train + n_test, 1))
np.random.shuffle(features)
poly_features = np.power(features, np.arange(max_degree).reshape(1, -1))
for i in range(max_degree):
    poly_features[:, i] /= math.gamma(i + 1)
labels = np.dot(poly_features, true_w)
labels += np.random.normal(scale = 0.1, size = labels.shape)
true_w, features, poly_features, labels = [torch.tensor(x, dtype = torch.float32) for x in [true_w, features, poly_features, labels]]

我们看一下true_w, features, poly_features, labels四个变量的维度分别为多少:

首先是true_w,维度为(10,1)

在这里插入图片描述
再然后是features,维度为(200,1):

在这里插入图片描述

再然后是poly_features,维度为(200,10):

在这里插入图片描述

最后是labels,维度为(200,):

在这里插入图片描述

二、问题的理解

labels = np.dot(poly_features, true_w)

我们可以知道,labels是由poly_featurestrue_w做内积得到的。

形状为(10,)的数组是一维数组。它的结构应该与此类似:a=[1,2,3,4,5]。

我们举一个例子:

import numpy as np
a = np.array([1, 2, 3, 4])
b = np.array([1, 2, 3, 4, 5, 6, 7, 8]).reshape((-1, 4))
c = np.dot(b, a)
print(c)

得到的结果为:

(PyTorch) D:\Code Project>D:/Anaconda/envs/PyTorch/python.exe "d:/Code Project/demo.py"
[30 70]

数据类型为ndarray数组。

那么30和70分别是怎么计算的?

不难理解:
30 = 1 ∗ 1 + 2 ∗ 2 + 3 ∗ 3 + 4 ∗ 4 = 1 + 4 + 9 + 16 = 30 30 = 1*1+2*2+3*3+4*4 = 1+4+9+16=30 30=11+22+33+44=1+4+9+16=30
70 = 1 ∗ 5 + 2 ∗ 6 + 3 ∗ 7 + 4 ∗ 8 = 5 + 12 + 21 + 32 = 38 + 32 = 70 70 = 1*5+2*6+3*7+4*8=5+12+21+32=38+32=70 70=15+26+37+48=5+12+21+32=38+32=70
内积后为一维数组。

同理可得,每一行做内积,共计200行,得到200个数据,内积后为一维数组。

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

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

相关文章

你给我解释解释,什么TMD叫TMD attention(持续更新ing...)

诸神缄默不语-个人CSDN博文目录 开宗明义:attention就是一个加权机制,但是权重需要经过训练得到。 本文介绍一些我自己整理的常见attention类型。 本文不关注别的博文里已经写烂了的attention机制的重要性和直觉解释(又不是写论文还要写int…

SpringBoot项目调用Matlab方法

SpringBoot项目调用Matlab方法需求环境准备步骤Matlab方面java方面结果需求 java调用matlab的函数 环境准备 Matlab,jdk,maven管理的springboot项目 步骤 Matlab方面 准备一个简单函数 function [x,y,z] jarDemo(arg) disp("hello world fr…

JVM运行数据区深度解析

运行数据区 字节码只是一个二进制文件存放在那里。要想在jvm里跑起来,先得有个运行的内存环境。 也就是我们所说的jvm运行时数据区。 1)运行时数据区的位置 运行时数据区是jvm中最为重要的部分,执行引擎频繁操作的就是它。类的初始化&…

IPD-产品需求管理过程(2)

1、需求分析方法 需求分析分为需求解释、需求过滤、需求分类、需求排序四步。 SEG:system engineering group,意为系统工程组 其中,需求解释环节要完成客户需求语言向内部规范描述语言的转换;需求过滤环节要去伪存真、去粗取精&#x…

C++11 异步操作future和aysnc

目录 C11异步操作的4个接口 1. std::aysnc和std::future std::future和std::aysnc的使用Demo 2. std::packaged_task std::packaged_task的使用Demo 3. std::promise std::promise的使用Demo 总结 C/CLinux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂 C1…

STM32F407高级定时器-死区时间研究-STM32CubeMX

距离上次写笔记,已经过去好长时间了 中间也折腾过不少东西,但是都没咋整理,主要是这中间都是在干活儿,不是自己想要研究的,也没想着要写。 从去年10月份开始想要学习FOC,10月份研究了一个月,到…

HTML5学习笔记(一)

XHTML,全称“EXtensible HyperText Mark-up Language(扩展的超文本标记语言)”,它是XML风格的HTML4.01,我们可以称之为更严格、更纯净的HTML4.01。 HTML语法书写比较松散,比较利于开发者编写。但是对于机器…

计算机的种类

文章目录计算机的种类一,模拟计算机二,数字计算机三,混合计算机计算机的种类 《计算机是什么》一节中讲到,根据不同计算机的尺寸,可以将计算机分为微型计算机、小型计算机、大型计算机、工作站和超级计算机5类。实际上…

string类(一)

目录 一、 string类对象的常见构造 二、string类对象的容量操作 2.1 size(返回字符串有效字符长度) 2.2 capacity(返回空间总大小) 2.3 reserve扩空间​编辑 2.4 resize初始化不会覆盖本来的空间​编辑 2.5 对于test_string7中每一句代码进行调试运行 三、string类对象的…

云中网络的隔离:GRE、VXLAN

对于云平台中的隔离问题,前面咱们用的策略一直都是 VLAN,但是我们也说过这种策略的问题,VLAN 只有 12 位,共 4096 个。当时设计的时候,看起来是够了,但是现在绝对不够用,怎么办呢? …

真的,Java并发编程基础入门看这个就够了

Java并发编程学习之02Java并发编程入门指南 真的,Java并发编程入门看这个就够了1. Java天生多线程2. Java启动多线程实现方式2.1 实现代码2.2 Thread和Runnable的区别2.3 start和run方法的区别3. Java如何停止线程呢3.1 已弃用方法3.2 推荐使用4. 守护线程5. 优先级…

JVM的GC算法CMS和G1

GC算法 -XX:UseSerialGC 新生代和老年代都使用串行收集器 串行收集器使用单线程并且是独占式的垃圾回收 -XX:UseParNewGC 新生代使用ParNew垃圾回收器,老年代使用串行收集器 ParNew是串行收集器的多线程版本,只工作在新生代(可以见名知…

jmeter逻辑控制器和定时器

常用逻辑控制器和定时器一、认识逻辑控制器一、作用:⼀个事务会包含并请求二、常见逻辑控制器介绍1、simple controller2、recorder controller3、loop controller4、random controller5、if controller6、module/include controller7、transaction controller三、J…

A Survey on Bias and Fairness in Machine Learning 阅读笔记

论文链接 Section 1 引言 1. In the context of decision-making, fairness is the absence of any prejudice or favoritism toward an individual or group based on their inherent or acquired characteristics. 公平是指基于个人或群体的固有或后天特征而对其没有任何偏…

【sfu】rtc 入口

rtc 入口 入口是 rtc adpter 类。 准备 call模块的所有资源 通过call模块使用webrtc内置 各类 rtcadpter的创建类rtcadpterfactory 是外部创建的 创建adapterfactory的外部类是peerconnection adapter_factory_ = std::move(std::make_unique

融云全球社交泛娱乐洞察,互联网社交换挡期的「社区产品」机遇

一切应用都将社交化。关注【融云全球互联网通信云】回复【融云】抽取高颜值大容量高端可乐保温杯哦~ 融入社交能力,创造增长奇迹。激活用户在不同场景的社交需求,让应用焕发新的生命力,也让“社交X”成为出海最大的浪。 《2022 社交泛娱乐出…

编译原理--基本块的划分

基本块的划分原则有4条 初始语句作为第一个基本块的入口遇到标号类语句,结束当前基本块,标号作为新基本块的入口(标号不在当前基本块中,而是划到下一个基本块)遇到转移类语句时,结束当前当前基本块&#x…

Java反序列化之CommonsCollections(CC1)分析篇

文章目录前言一、过程分析 1.入口点---危险方法InvokerTransformer.transform() 2.触发危险函数TransformedMap.checkSetValue() 3.AnnotationInvocationHandler类 4.ChainedTransformer类 5.ChainedTransformer类前言 本文包括:Java反序列化之CommonsCol…

3DMAX一键生成螺母和螺栓插件使用教程

插件介绍 3DMAX一键生成螺母和螺栓插件,用于创建精缰化的螺母和螺栓模型。这些模型是逼真的,只需单击一下即可生成。有许多参数可以定制模型的外观或尺寸。 主要功能 单击创建螺母、螺栓和垫圈在螺栓顶部创建文本标记(商标)直径…

关于不同长度PEG的丙炔:Pyrene-PEG2/PEG3/PEG4/PEG5-propargyl,1817735-33-3

Pyrene-PEG2-Propargyl中芘用于蛋白质构象和相互作用研究中的荧光探针,降冰片烯很容易与叠氮化物和四嗪反应,可用于用荧光团和功能分子标记细胞,亲水性 PEG 间隔臂可以增加水溶性。包括PEG2、PEG3、PEG4、PEG5等不同长度的PEG。 1、Pyrene-PE…