#1

Hi there, I’m new to mxnet and wondering how to multiply a shape=[22,11] tensor A and another tensor with shape=[22,11,100]. The third axe 100 is batch size, I’d like to elementwise multiply these [22,11] tensors, and broadcast the multiplication to batch dimension.

A * B gives error:
elemwise_binary_broadcast_op.h:68: Check failed: l == 1 || r == 1 operands could not be broadcast together with shapes [22,11] [22,11,100]

Any hints? Thank you.

#2
``````import mxnet as mx
a=mx.nd.random_normal(shape=(22,11))
print(a.shape)
b=mx.nd.random_normal(shape=(22,11,100))
print(b.shape)
new_a=a.reshape((22,11,1))
print(new_a.shape)
``````

#3

It seems that you need to reshape A to (22, 11, 1). Besides using `reshape` to explicitly specify the exact shape as mentioned by @kli-nlpr, you may also use `expand_dims` to create a new axis of size 1:

``````new_a = a.expand_dims(axis=2)
# new_a.shape : (22, 11, 1)
result = new_a * b # or broadcast_mul(new_a, b)
# (22, 11, 1) * (22, 11, 100)
``````

Note that `*` would broadcast only for ndarrays, not for symbols.

#4