Tensorflow Assign requiere que las formas de ambos tensores coincidan. Forma de lhs = Forma de rhs =

Soy un TensorFlow noob. He entrenado un modelo TensorFlow desde la implementación de código abierto de deeppose y ahora tengo que ejecutar el modelo contra un nuevo conjunto de imágenes.

El modelo fue entrenado en imágenes de tamaño 100 * 100 así que he cambiado el tamaño del nuevo conjunto de imágenes al mismo tamaño. Tengo 149 nuevas imágenes para ejecutar el modelo en contra. Cuando ejecuto el modelo, aparece el siguiente error.

 InvalidArgumentError (see above for traceback): Assign requires shapes of both tensors to match. lhs shape= [20] rhs shape= [48] 

En la linea

 saver = tf.train.Saver(tf.all_variables()) 

Sospecho que el tamaño del modelo entrenado y el tamaño de la imagen de prueba no coinciden. No tengo claro cómo solucionar este problema. tf.all_variables() la lista de variables de la llamada tf.all_variables() . Aquí está

 Tensor("Placeholder:0", shape=(128, 100, 100, 3), dtype=float32) (11, 11, 3, 20) conv1/weights:0 (20,) conv1/biases:0 (5, 5, 20, 35) conv2/weights:0 (35,) conv2/biases:0 (3, 3, 35, 50) conv4/weights:0 (50,) conv4/biases:0 (3, 3, 50, 75) conv5/weights:0 (75,) conv5/biases:0 (300, 1024) local1/weights:0 (1024,) local1/biases:0 (1024, 1024) local2/weights:0 (1024,) local2/biases:0 (1024, 0) softmax_linear/weights:0 (0,) softmax_linear/biases:0 

No estoy seguro de dónde viene el parámetro RHS. He examinado todos los archivos de configuración y no parece haber ningún parámetro que especifique esta configuración.

Cualquier ayuda para resolver esto será muy apreciada.

Intente eliminar los puntos de control que se guardaron de ejecuciones anteriores. A veces, cuando se cambia la architecture y se ejecuta de nuevo, TF se recuperará del punto de control anterior (pero con una nueva definición), y obtendrá este error.

También me encontré con este problema, el problema era que las tags y los números de clase no coincidían, así que cambié y arreglé el número de clase y las tags en todas partes.

En mi caso, fue para cambiar el parámetro “num_classes” en faster_rcnn.config y el archivo “label_map.pbtxt” para que coincida con los valores reales.

Así que sucedió que había actualizado el código de TensorFlow pero no lo había entrenado. Así que volví a la versión anterior, hice los cambios nuevos apropiados al script de ejecución y lo hice funcionar.