Dudas entregable 1

Dudas entregable 1

de Pedro Arsuaga Fava -
Número de respuestas: 3

Buenas,

Tengo algunas dudas sobre el entregable:

1) Mi implementación de Marching Squares pasa todos los tests pero a la hora de graficar las curvas me tira error (overflow encountered in scalar subtract), aparentemente en la interpolación.  Cuando voy a graficar las curvas con la celda siguiente a la función las mismas quedan incompletas. Probé verificando que los valores no sean demasiado cercanos pero el error persiste. También probé hacer cast a float64 y en ese caso desaparece el mensaje de error pero las curvas siguen quedando incompletas. No me queda muy claro qué puedo probar cambiar.

2) Cuando se pide implementar las funciones de add_..._noise se indica usar una implementación propia. La idea es usar las funciones de numpy para ello? No me queda claro a qué se refiere exactamente por implementación propia en este caso.

Agradezco cualquier ayuda. Muchas gracias.

Saludos,

Pedro.

En respuesta a Pedro Arsuaga Fava

Re: Dudas entregable 1

de Emilio Martinez -
Buenas, respondo por orden de las dudas.

1) Algo que puede llegar a pasar en la interpolación es que dividas por números cercanos a cero. Una recomendación es que al denominador le sumes un número chico (1e-6, por ejemplo). Más allá de eso, van dos cosas:
  • no te preocupes si la comparación de los tests no aprueban siempre y cuando los valores son cercanos a los esperados (como comentamos acá)
  • no entiendo a qué te referis con lineas "incompletas". ¿Podes subir una imagen de lo que ves en los tres ejemplos?

Si preferis ver algo de implementación de código, podemos verlo en clase de práctico/consulta o por correo.

2) Si, usen numpy llamando funciones de distribuciones simples (gaussiana, uniforme, etc). Lo que NO pueden hacer es llamar funciones de otras bibliotecas como del estilo de random_noise de skimage que ya hacen esto.

En respuesta a Emilio Martinez

Re: Dudas entregable 1

de Pedro Arsuaga Fava -

Esta es la salida que obtengo. En el tercer caso, por ejemplo,  se ve que comienza a dibujar la curva (a mi criterio) correctamente pero solo dibuja un cuarto de la misma y no se obtiene una línea cerrada. Probé lo de agregar el 1e-6 pero sigo teniendo el mismo problema.

salidas

En respuesta a Pedro Arsuaga Fava

Re: Dudas entregable 1

de Emilio Martinez -
Los casos y las lineas trazadas estan bien. Más que un problema numérico, tiene pinta que no estas recorriendo toda la imagen. El test te da todo bien porque los casos que prueba son en arrays de 2x2.

Asegurate que estes recorriendo la imagen de una forma parecida a esta:
 
...
for i in range( I.shape[0] - 1):
     for j in range( I.shape[1] - 1):
          ...
 
Con I la imagen. Dentro del bucle for deberías acceder al cuadrado 2x2 arrancando desde el índice (i,j)
 
Avisa si no pudiste con el problema.
 
Saludos