code: def bprop_naive(self, error, permute=False):
      for dst in range(self.ofmsize):
          rflinks = self.links[dst]
          A = error[:, self.ofmlocs[dst]]
          B = self.weights
          if permute:
              inds = np.random.permutation(A.shape[1])
              np.dot(A[:, inds], B[inds, :], self.bpropbuf)
          else:
              np.dot(A, B, self.bpropbuf)
          self.berror[:, rflinks] += self.bpropbuf
  
imports: import itertools
  import numpy
  import pytest
  from neon import NervanaObject
  from neon.layers.layer import Convolution
  from neon.initializers.initializer import Uniform
  from utils import allclose_with_out
label_desc: Use image node_id 4 for calling the ConvLayerRef obj's underlying member method code with example usage: obj.bprop_naive(error, permute) without return types