Home > Enterprise >  ValueError: shapes (3,) and (4,) not aligned: 3 (dim 0) != 4
ValueError: shapes (3,) and (4,) not aligned: 3 (dim 0) != 4

Time:02-01

import numpy as np

inputs = [1, 2, 3, 2.5]
weights = [
    [0.2, 0.8, -0.5, 1.0],
    [0.5 -0.91, 0.26, -0.5],
    [-0.26, -0.27, 0.17, 0.87]]

biases = [2, 3, 0.5]

output = np.dot(weights, inputs)   biases
print(output)

I'm very new to numpy, and wrote a dot product using the following "inputs" vector, "weights" matrix, and "biases" vector. The output gives me a shape error:

ValueError: shapes (3,) and (4,) not aligned: 3 (dim 0) != 4

CodePudding user response:

I found out your problem, it is a common problem of forgetting a comma and "fusing together" array elements, here I added np.array to your code:

import numpy as np

inputs = np.array([1, 2, 3, 2.5])
weights = np.array([
    [0.2, 0.8, -0.5, 1.0],
    [0.5 -0.91, 0.26, -0.5],
    [-0.26, -0.27, 0.17, 0.87]
    ])

biases = [2, 3, 0.5]


output = np.dot(weights, inputs)   biases
print(output)

Now I get the deprecation warning:

VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.
  weights = np.array([

You must add the comma , to separate the items here:

[0.5 -0.91, 0.26, -0.5], ->     [0.5, -0.91, 0.26, -0.5],

Final code:

import numpy as np

inputs = np.array([1, 2, 3, 2.5])
weights = np.array([
    [0.2, 0.8, -0.5, 1.0],
    [0.5, -0.91, 0.26, -0.5],
    [-0.26, -0.27, 0.17, 0.87]
    ])

biases = [2, 3, 0.5]


output = np.dot(weights, inputs)   biases
print(output)
  • Related