我正在尝试学习神经网络。以下是代码。我收到错误“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)
零的签名如下:
numpy.zeros(shape, dtype=float, order='C')
形状参数应以整数或多个整数的元组形式提供。您收到的错误是由于 4 被解释为 dtype。
在其他答案中,他们已经提到了 Numpy 处理它的默认方法。但是,我认为您想创建一个 4x4 数组。
因此,如果有人想要创建更大的数组,他们应该在元组中提供数字。在这种格式中:
print(np.zeros((4,4)))
其他选项(例如 dtype 和 order)特定于非常高级的编程,其中程序员更喜欢“C 风格”或“Fortan 风格”,有时根据情况提及数据类型可能是一种优势或必要。
这行“self.biases= np.zeros(1, m_neurons)”您缺少一些括号,该行应该是“self.biases= np.zeros((1, m_neurons))”