[Recursos] Aprehendiendo sobre redes neuronales

Unrack

#83 Me suena a las aproximaciones kernels para no tener que calcular inversas y productos tensoriales gordos.
#90 Gracias, a ver que tal va la cosa.

Ardi

A ver si alguno de aqui puede resolverme la duda, estoy trabajando con redes convolucionales para el tema de resonancias magneticas, cuando hago el evaluation como puedo mostrar los avances de la red sobre las imagenes que estoy tratando. Vamos poder sacar una especia de comparativa entre fotos :S

2 respuestas
Frave

#92 yo uso resos con redes y vamos no se si te has explicado bien porque básicamente guardas cada x iteraciones una salida del test y listo. Ya no se a que te refieres con comparar ya que la cosa cambia en función de lo que estés haciendo, segmentar, sintesis de imagenes, mejorar la imagen etc. Y luego si estas con parches de volumenes o usando los cortes directamente la cosa puede cambiar.

Yo suelo usar el tensorboard de tensorflow para plotear imagenes y guardar ejemplos de como evoluciona la red.

HeXaN

#92 ¿Avances en qué sentido? ¿Qué herramientas estás usando?

Ardi

Explico un poco mejor:

Mis fotos son de este pelo [nºimagenes,240,240,4] 4 tipo de cortes cerebrales, mi mascara que son mis labels [nºimagenes,240,240,2] las etiquetas son tumor no tumor, hago una red mas menos en forma de U, donde al final tengo una salida [?.240,240,2]. En el training obviamente vas viendo el loss y en el evaluation veo la accuraccy, pero siempre que he visto tutoriales rollo mnist, cifar y demas como que la final te termina comparando fotos o te saca en plan foto y la prediccion.

Estoy con tensorflow

4 respuestas
HeXaN

#95 Simplemente plotea la salida con matplotlib y tendrás la imagen resultante.

2 respuestas
Ardi

#96 En el training o en el eval?

Frave

#95 te explico como lo hago yo, ya que he hecho proyectos parecidos.

Normalmente tienes un numero de volumenes de reso con los con que entrenas y un grupo con el que aplicas el test. Del grupo de train sacas los cortes y vas entrenando y tras cada epoch en train pillas los volumenes de test y los vas pasando por la red ( sin entrenarla obviamente xD) y recoges los outputs y los vuelves a apilar para crear un nuevo volumen, guardas ese volumen y repites hasta que hagas tantas epoch como necesites para que converja la red.

Ardi

#96 #97 La verdad que muchas gracias a ambos, este tfg me esta desesperando un poquito bastante xD.

Soraghatsu

lo he metido a favs, ya que me está resultando muy muy muy interesante

Ulmo

#95 ¿Es mucho preguntar donde lo estas haciendo? No te pregunto el grupo para no stalckear demasiado.

Es un proyecto peligroso para un tfg, entiendo que estes estresado.

Frave

Pongo por aquí un post de kdnuggets que comenta algunas de las cosas que se pueden hacer solventemente hoy en día en imagen usando deep learning, con sus respectivos estados del arte y enlaces a otros blogs que los explican en mas detalle.

https://www.kdnuggets.com/2019/02/everything-computer-vision.html

Perrofeo

Yo estoy basándome principalmente en este libro: deeplearningbook opensource y apoyado por el MIT. Con una busqueda rápida en google podeis encontrar el pdf rápidamente.

He dado mis pinitos en matlab pero ya estoy con tensorflow, haciendo una red que detecta el tipo de movimiento a partir de los datos del acelerometro de un smartwatch, el objetivo es hacerlo en tiempo real en una app de Android. No soy un experto pero algo se, aunque principalmente de Perceptrones multicapa. Vamos, que no hay CNN porque no domino el tema del todo y con una secuencial va bastante bien. Como el compañero de #95 , también es un TFG.

Si me van surgiendo dudas las posteo

Un saludo

B

Quitando el nivel de algunos usuarios que están en su TFG y ese niveles muy pro. Ayudan mucho los enlaces que compartís, ahora tengo una mejor idea.

Los libros y blog ue habéis recomendados, son muy muy prácticos. Y otros tantos se me quedan muy grandes.

Lo de tensorflow es lo que no llego a pillar xD. (Y python).

Un saludo.

rackinck

Supongo que muchos ya conocéis computerphile, pero para los que no, considerando que esto es Mediavida esto puede ser interesante! Escuchar a Mike Pound siempre es un placer.

1
HeXaN

Recién salida del horno:

Artículo con más información: https://blogs.nvidia.com/blog/2019/03/18/gaugan-photorealistic-landscapes-nvidia-research/?ncid=so-you-n1-78256

Próximamente disponible para todo el mundo: https://github.com/NVlabs/SPADE

7 4 respuestas
hda

#106 pero buat defaq 😮

bLaKnI

#106 Me sucede que cuando veo aportaciones como la presente, siempre me quedo pensando que estoy aquí sentado, viéndolo a través de un monitor. Lejos de lo que esto representa y ahí, hay alguien haciéndolo y contribuyendo a cambiar el mundo... Es una envidia sana, pero a su vez reflexión profunda. La mayoría comemos lo que pocos generan.

B

#106 Es ver estás cosas y te das cuenta de lo que te queda por aprender. Impresionante.

B

#106 Es muy locura a dónde vamos a llegar con eso.

hda

Bueno, esto es una locura. Como sabéis hace no demasiado se han enseñado redes neuronales para dibujar como Van Gogh y componer como Bach.

Hoy, el doodle de Google trata de el usuario marque en un pentagrama una serie de notas y, mediante una red neuronal enseñada con más de trescientas partirutras de Bach, hacer tres voces más sobre lo que el usuario haya pintado.

Me parece increíble el peso, la notoriedad que están ganando las redes neuronales de un tiempo a esta parte. Todo pinta a que seguirá aumentando.

1
9 días después
Ardi

Es duda mas de python que de propiamente deepL, alguno de vosotros estais con conda en windows, es que estoy con un tema de cross folder validation que lo que hago en si es coger los pacientes (cada uno de ellos es un .nii.gz) y los que van para el test los quiero copiar en una carpeta de test y los del eval en otra de evaluation dentro del jupyterlab, pero el problema que tengo es que en widows cuando uso las sentencias para copiar y pegar no me deja por problemas de permisos, cosa que en linux con un -chmod 755 se acabarian los problemas

1 respuesta
hda

#112 quizás debieras preguntar aquí: https://www.mediavida.com/foro/dev/python-hilo-general-551473

1 respuesta
Ardi

#113 Si lo habia pensado, pero problema resuelto me he puesto a leer el manual de la biblioteca en cuestión y lo habia leido mal :S

Ardi

Esto es una dudilla ya referido al tema, que podeis hacer cuando una red que no es vuestra( en este caso me la ha pasado mi tutor recordad que estaba haciendo un tfg) diverge al hacer el entrenamiento:

  • Cambiar hiperparametros
  • Aumentar el set de entrenamiento
  • Cambiar la red entera

Consejos??

2 respuestas
HeXaN

#115 Hombre, yo empezaría por aumentar el número de épocas y ver qué hace.

1 respuesta
hda

Antes de nada decir que tengo cero experiencia, solo me he leído el segundo libro que pongo en #1 , ahora estoy con temas de estadística para otras movidas.


¿Qué tipo de red es? ¿Topología? ¿Qué neuronas llevas?

Yo haría lo que dice HeXan, le daría unas cuantas épocas, si no hay mejora metería early stop y empezaría a toquetear lo siguiente:

  • Jugaría con nuevos valores de learning rate y L2. Con early stop para probar con diferentes números (incluso ordenes de magnitud)
  • Aumentaría el set de entrenamiento (ojo por el sobreentrenamiento)
  • Si tienes muchas capas ocultas y puedes, reduciría el número de ellas (esto depende mucho de la topología, pero vamos, yo reduciría por el problema de la inestabilidad del gradiente descendente)
1 respuesta
Unrack

#115 Te refieres a transfer learning? O te ha pasado una arquitectura de red a entrenar de 0.

1 respuesta
Ardi

#118 #117 #116 Perdonad por no contestar, la red es convolucional con dos ramales principales, pero he readaptado uno porque con los dos se me queda el asterisco del jupyter ahi pillado, bueno principalmente el ramal que he adapatado tiene menos capas de las que tiene la original pero es como que reduzco de forma diferente, es decir de 3 formas hasta llegar a fusionarlas, luego esta fusion la reduzco un poco mas y luego hago deconvoluciones hasta tener el mismo tamaño de la entrada. La cosa es que mi base de datos de prueba son 6 pacientes cada uno con 155 cortes en la cabeza y 4 tipos de cortes(me quedo los 15 mejores de cada paciente xk sino la RAM me vuela) y para probar simplemente que me funcionaba hice unos 4 epochs con 45 cortes y tamaño de batch 15 con lo que la red me divergia. Intentare probar a aumentar tanto el numero de pacientes,cortes y epochs para intentar no hacer que me diverga y que tampoco me haga overfitting

1 respuesta
Unrack

#119 Me cuesta seguirte hehe. En convolucionales las arquitecturas residuales funcionan muy bien cuando encontramos una tendencia en la loss del training divergente.

1 respuesta