类型错误:无法将“4”解释为数据类型

问题描述 投票:0回答:4

我正在尝试学习神经网络。以下是代码。我收到错误“TypeError:无法将 '4' 解释为数据类型”任何人都可以帮我识别错误吗?

import numpy as np

inputs = [[1, 2 , 3, 2.5],
      [2, 5, 9, 10],
      [5, 1, 2, 7],
      [3, 2, 1, 4],
      [1,1.5, 7, 8]]

class layer_dense:
      def __init__ (self, n_inputs, m_neurons):
        self.weights= np.random.rand(n_inputs, m_neurons)
        self.biases= np.zeros(1, m_neurons)
     def forward (self, inputs):
        self.output= np.dot(inputs, self.weights)+self.biases
    
layer1 = layer_dense(4, 4)
layer2 = layer_dense(5,2)

layer1.forward(inputs)
layer2.forward(layer1.output)
print(layer2.output)
python numpy neural-network conv-neural-network forward
4个回答
16
投票

各功能说明

numpy.zeros(shape, dtype=float, order='C')

第二个参数应该是数据类型而不是数字


2
投票

零的签名如下:

numpy.zeros(shape, dtype=float, order='C')

形状参数应以整数或多个整数的元组形式提供。您收到的错误是由于 4 被解释为 dtype。


2
投票

在其他答案中,他们已经提到了 Numpy 处理它的默认方法。但是,我认为您想创建一个 4x4 数组。

因此,如果有人想要创建更大的数组,他们应该在元组中提供数字。在这种格式中:

print(np.zeros((4,4)))

其他选项(例如 dtype 和 order)特定于非常高级的编程,其中程序员更喜欢“C 风格”或“Fortan 风格”,有时根据情况提及数据类型可能是一种优势或必要。


0
投票

这行“self.biases= np.zeros(1, m_neurons)”您缺少一些括号,该行应该是“self.biases= np.zeros((1, m_neurons))”

© www.soinside.com 2019 - 2024. All rights reserved.