0
import numpy as np

class NeuralNetwork():

    def __init__(self):
        np.random.seed(1)

        self.synaptic_weights = np.random.random((8, 5))

    def rectified(self, x):

        return max(0, x)

    def rectified_derivative(x):
         x[x<=0] = 0
         x[x>0] = 1
         return x

    def train(self, training_inputs, training_outputs, training_iterations):

        for iteration in range(training_iterations):
            output = self.think(training_inputs)

            error = training_outputs - output

            adjustments = np.dot(training_inputs.T, error * self.rectified_derivative(output))

            self.synaptic_weights += adjustments

    def think(self, inputs):

        inputs = inputs.astype(float)
        output = self.rectified(np.dot(inputs, self.synaptic_weights))
        return output

不知道为什么我会收到此错误。有人可以指出我正确的方向吗?错误在这一行:

ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()

    return max(0, x)
4

1 回答 1

1

如果您尝试将所有值限制为非负数,请numpy.clip按以下方式使用:

x.clip(0)

Python 的内置max运算符不适用于 numpy 数组

于 2020-01-22T05:11:14.577 回答