Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >ValueError: matmul:输入操作数0没有足够的维数(有0,->核心签名(n?,k),(k,m?) matmul(n?,m?)需要1)

ValueError: matmul:输入操作数0没有足够的维数(有0,->核心签名(n?,k),(k,m?) matmul(n?,m?)需要1)
EN

Stack Overflow用户
提问于 2021-02-01 18:09:34
回答 1查看 2.7K关注 0票数 1

我是板条箱和程序员的新手,我知道如何解决这个问题,我是在YouTube的帮助下编程的,但他没有这个问题,因为我是新手,我不知道如何解决它,更不用说它是关于什么的-请帮助D:

问题是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-58-2d579b4cf5ca> in <module>()
     16 
     17 
---> 18 train(neural_net, X, Y, l2_cost, 0.5)

<ipython-input-58-2d579b4cf5ca> in train(neural_net, X, Y, l2_cost, lr)
     11   #Forward pass - Pase adelantado
     12   for l, layer in enumerate(neural_net):
---> 13     z = out[-1][1] @ neural_net[l].W + neural_net[l].b
     14     a = neural_net[l].act_f[0](z)
     15     out.append((z, a))

ValueError: matmul: Input operand 0 does not have enough dimensions (has 0, gufunc core with signature (n?,k),(k,m?)->(n?,m?) requires 1)

我正在用Google Colab编程-我需要帮助我的代码:‘

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
import scipy as cs
import matplotlib.pyplot as plt

from sklearn.datasets import make_circles

# Crera Data set
n = 500 #cantidad de cosas a analizar
p = 2 #cantidad de caracterizticas de las cosas a analizar

X, Y = make_circles(n_samples = n, factor = 0.5, noise=0.05)

plt.scatter(X[Y == 0,0], X[Y == 0,1])
plt.scatter(X[Y == 1,0], X[Y == 1,1], c = 'salmon')
plt.show()

#Clase de la capa de la RED
class neural_layer():

  def __init__(self, n_conn, n_neur, act_f):

    self.act_f = act_f
    self.b = np.random.rand(1, n_neur) * 2 - 1
    self.W = np.random.rand(n_conn, n_neur) * 2 - 1

#Funciones de Activacion
sigm = (lambda x: 1 / (1 + np.e ** (-x)),
       lambda x: x * (1 - x))

relu = lambda x: np.maximum(0, x)

_x = np.linspace(-5, 5, 100)
plt.plot(_x, relu(_x))

l0 = neural_layer(p, 4, sigm)
l1 = neural_layer(4, 8, sigm)
#hasta el infinito....

def create_nn(topology, act_f):

  nn = [] #contenedor de cada una de las capas de la red 'Neural Network'

  for l, layer in enumerate(topology[:-1]):
    nn.append(neural_layer(topology[1], topology[l+1], act_f))
  return nn

topology = [p, 4, 8, 16, 8, 4, 1] #topologia de la red

neural_net = create_nn(topology, sigm)

l2_cost = (lambda Yp, Yr: np.mean((Yp - Yr) ** 2), #Error cuadratico medio
           lambda Yp, Yr: (Yp - Yr))

def train(neural_net, X, Y, l2_cost, lr=0.5):
  out = [(None, X)]
  #Forward pass - Pase adelantado
  for l, layer in enumerate(neural_net):
    z = out[-1][1] @ neural_net[l].W + neural_net[l].b
    a = neural_net[l].act_f[0](z)
    out.append((z, a))
train(neural_net, X, Y, l2_cost, 0.5)

“”“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-02 01:40:07

您正在尝试将2个不兼容的矩阵相乘。

W形状= (4,4)

out-1形状= (500,2)

在这条线上

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  z = out[-1][1] @ neural_net[l].W + neural_net[l].b

下面是你修复它的方法

您必须更改下面的行,而不是"1“,它应该是"l”

Chage:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 nn.append(neural_layer(topology[1], topology[l+1], act_f))

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 nn.append(neural_layer(topology[l], topology[l+1], act_f))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65997924

复制
相关文章
2023-03-04:定义一个二维数组N*M,比如5*5数组下所示: 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
(0,0) (1,0) (2,0) (2,1) (2,2) (2,3) (2,4) (3,4) (4,4)。
福大大架构师每日一题
2023/03/04
1.1K0
2023-03-04:定义一个二维数组N*M,比如5*5数组下所示: 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
2023-03-04:定义一个二维数组N*M,比如5*5数组下所示:0, 1, 0, 0, 0,0, 1, 1, 1, 0,0,
[(0,0) (1,0) (2,0) (2,1) (2,2) (2,3) (2,4) (3,4) (4,4)]。
福大大架构师每日一题
2023/06/08
2970
2023-03-04:定义一个二维数组N*M,比如5*5数组下所示:0, 1, 0, 0, 0,0, 1, 1, 1, 0,0,
【Python】循环语句 ⑤ ( range 语句 | for 循环本质遍历序列 | 生成由 0 开始到 n 的序列 | 生成由 m 到 n 的序列 | 生成由 m 到 n 的步长为 k 的序列 )
上述语法中的 数据集 是 序列类型 , 该类型变量 用于存储一系列有序的元素 , 常见的序列类型有 :
韩曙亮
2023/10/11
2260
【Python】循环语句 ⑤ ( range 语句 | for 循环本质遍历序列 | 生成由 0 开始到 n 的序列 | 生成由 m 到 n 的序列 | 生成由 m 到 n 的步长为 k 的序列 )
2023-02-12:给定正数N,表示用户数量,用户编号从0~N-1, 给定正数M,表示实验数量,实验编号从0~M-1, 给定长度为N的二维数组A, A[i]
Bi = { e, f }表示,第i条查询想知道e号、f号实验,一共有多少人(去重统计)。
福大大架构师每日一题
2023/02/12
5350
2023-02-12:给定正数N,表示用户数量,用户编号从0~N-1, 给定正数M,表示实验数量,实验编号从0~M-1, 给定长度为N的二维数组A, A[i]
从M走到N最少步数
假设一个人站在 X 轴的正半轴上,起始点在 M 点(0 <= M <= 100000),他每次可以向左走一步,向右走一步,或者走到所在坐标乘以2的位置,最终来到 N 点(0 <= N <= 100000)。问:所需的最少步数是几步?(如果不能从 M 走到 N 点,则返回 -1)
echobingo
2018/10/10
8100
2021-08-29:N * M的棋盘(N和M是输入参数),每种颜色
2021-08-29:N * M的棋盘(N和M是输入参数),每种颜色的格子数必须相同的,上下左右的格子算相邻,相邻格子染的颜色必须不同,所有格子必须染色,返回至少多少种颜色可以完成任务。
福大大架构师每日一题
2021/08/30
3360
2021-08-29:N * M的棋盘(N和M是输入参数),每种颜色
输入数字n然后输出0到n的全排列
给定一个正整数n, 则输出0到n的所有排列 输入:2 输出:012 021 102 120 201 210 代码: private static Set<String> result = new HashSet<String>(); public static void allSort(int number) { if (number < 0) { return; } String str=""; for (int i = 0;i <= number; i
用户6055494
2019/10/21
1.1K0
2023-06-24:给你一根长度为 n 的绳子, 请把绳子剪成整数长度的 m 段, m、n都是整数,n > 1并且m > 1,
例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。
福大大架构师每日一题
2023/07/08
1960
2023-06-24:给你一根长度为 n 的绳子, 请把绳子剪成整数长度的 m 段, m、n都是整数,n > 1并且m > 1,
Sony RX0M1-M2外接M43接口改装
两者所对应的传感器尺寸不同,同时物理规格也不一样,MFT的卡口直径46.5mm,法兰距38.6mm,EF的直径是54mm,法兰距44.14mm。
云深无际
2023/02/27
1.1K0
Sony RX0M1-M2外接M43接口改装
UVA The ? 1 ? 2 ? ... ? n = k problem
The ? 1 ? 2 ? ... ? n = k problem The problem Given the following formula, one can set operators '+
用户1624346
2018/04/17
5790
2023-02-12:给定正数N,表示用户数量,用户编号从0~N-1,给定正数M,表示实验数量,实验编号从0~M-1,给定长度为
B[i] = { e, f }表示,第i条查询想知道e号、f号实验,一共有多少人(去重统计)。
福大大架构师每日一题
2023/06/08
1790
2023-02-12:给定正数N,表示用户数量,用户编号从0~N-1,给定正数M,表示实验数量,实验编号从0~M-1,给定长度为
Celery ValueError: n
最近因项目需要,在使用任务队列Celery的时候,出现如题错误,最终在github上里找到解决办法,记录一下。
py3study
2020/01/20
7920
一个正整数 n ,求n!的末尾有几个0
import java.util.Scanner; /** * 输入一个正整数 n ,求n!的末尾有几个0 * 例如:10! = 3628800,则返回 2 */ public class Test1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int coun
小雨的分享社区
2022/10/26
6740
Numpy与矩阵
请注意,本文编写于 980 天前,最后修改于 980 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/17
1.4K0
Numpy与矩阵
数学--组合数学--当C(n,m)中n固定m++的递推模板
ll power(ll a, ll b, ll p) { ll ans = 1 % p; for (; b; b >>= 1) { if (b & 1) ans = ans * a % p; a = a * a % p; } return ans; } long long mm[500000]; void init(ll n, ll k) { mm[1] = 1; for (ll i =2;
风骨散人Chiam
2020/11/03
4970
节省大量时间的 Deep Learning 效率神器
写深度学习网络代码,最大的挑战之一,尤其对新手来说,就是把所有的张量维度正确对齐。如果以前就有 TensorSensor 这个工具,相信我的头发一定比现在更浓密茂盛!
McGL
2020/10/30
1.7K0
节省大量时间的 Deep Learning 效率神器
0 到 n-1 的数组判重
首先我们想到的就是hash,通过hash判断一个数字是否在之前出现过只需要O(1)的时间复杂度,我们知道hashset的底层过就是hashmap的key,即hash的实现。
Tim在路上
2020/08/04
3560
C语言: 定义一个函数int isprime(int n),用来判别一个正整数n是否为素数。在主函数中输入两个正整数m和n(m>=1,n>m),统计并输出m和n之间的素数的个数以及这些素数的和。
定义一个函数int isprime(int n),用来判别一个正整数n是否为素数。在主函数中输入两个正整数m和n(m>=1,n>m),统计并输出m和n之间的素数的个数以及这些素数的和。
川川菜鸟
2021/10/18
2.6K0
构建列表 [[0] * m] * n带来的隐患
这里只修改了L[0][0],但是却L却输出: [[1, 0, 0], [1, 0, 0]]
生信编程日常
2020/05/08
5680
递归实现n^k
#include<stdio.h> #include<stdlib.h> int Power(int m,int n){ if(n<=1){ return m;} return m*Power(m,n-1); } int main(){ int m; int n; printf("请输入需要计算次方的底数与指数:"); scanf("%d %d",&m,&n); a=Power(m,n); printf("结果为:%d\n",a); system("pause")
小雨的分享社区
2022/10/26
2320

相似问题

ValueError: matmul:输入操作数1的核心维数0不匹配,具有gufunc签名(n,k),(k,m?)->(n?,m?)

13

ValueError: matmul:输入操作数1的核心维数0不匹配,具有gufunc签名(n,k),(k,m?)->(n?,m?)(尺码13与1不同)

12

ValueError: matmul:输入操作数1在其核心维度0中不匹配,gufunc签名为(n?,k),(k,m?)->(n?,m?)(大小%1与%3不同)

2957

ValueError: matmul:输入操作数1在其核心维度0中不匹配,gufunc签名为(n?,k),(k,m?)->(n?,m?)(大小%2与%1不同)

120

matmul:输入操作数1的核心维度0不匹配,gufunc签名为(n?,k),(k,m?)->(n?,m?)(大小20与10不同)

117
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文