ValueError: could not broadcast input array from shape (1,2048) into shape (98,1024)

Author: Hemanth-GloifyCreated Feb 8, 2022Updated Feb 8, 2022

I'm trying to build a Attention mechanism for Medical report Generation using Chest X-rays.

train, test = train_test_split(data, test_size = 0.2, random_state = 1, shuffle = True) print(train.shape) - (3056, 4) print(test.shape) - (764, 4)

Function for Extracting the Images:

def image_feature_extraction(image1,image2):

  image_1 = Image.open(image1).convert('RGB')
  image_1 = np.asarray(image_1)

  image_2 = Image.open(image2).convert('RGB')
  image_2 = np.asarray(image_2)

    #normalize the values of the image
  image_1 = image_1/255
  image_2 = image_2/255

    #resize all image into (224,224)
  image_1 = cv2.resize(image_1,(224,224))
  image_2 = cv2.resize(image_2,(224,224))

  image_1 = np.expand_dims(image_1, axis=0)
  image_2 = np.expand_dims(image_2, axis=0)

    #now we have read two image per patient. this is goven to the chexnet model for feature extraction

  image_1_out = final_chexnet_model(image_1)
  image_2_out = final_chexnet_model(image_2)

  #conactenate along the width
  conc = np.concatenate((image_1_out,image_2_out),axis = -1)

  #reshape into(no.of images passed, length*breadth, depth)
  image_feature=tf.reshape(conc,(conc.shape[0], -1, conc.shape[-1]))
  #image_feature = feature_extraction_model([image_1,image_2])

  return image_feature

print(image_2_out)

KerasTensor(type_spec=TensorSpec(shape=(None, 1024), dtype=tf.float32, name=None), name='Chexnet_model/avg_pool/Mean:0', description="created by layer 'Chexnet_model'")

train_features = np.zeros((3056,98,1024))

for row in tqdm(range(train.shape[0])): image_1=train.iloc[row]["image1"] image_2=train.iloc[row]["image2"] train_features[row] = (image_feature_extraction(image_1,image_2))

0%| | 0/3056 [00:00<?, ?it/s]

ValueError Traceback (most recent call last) in 2 image_1=train.iloc[row]["image1"] 3 image_2=train.iloc[row]["image2"] ----> 4 train_features[row] = (image_feature_extraction(image_1,image_2))

ValueError: could not broadcast input array from shape (1,2048) into shape (98,1024)

Source: carpedm20/DCGAN-tensorflow