Banner de perfil
0

Mariano Salazar

@marianosalazar161

Queretaro, Mexico

Mariano Salazar@marianosalazar161

Con las ultimas versiones de TensorFlow indica que se debe usar el input-shape fuera de una capa

1 <span style="color: #c586c0;">import</span> tensorflow <span style="color: #c586c0;">as</span> tf <span style="color: #6aa94f;"># Si se corre de manera local, debe descargarse la librería</span> 2 3 <span style="color: #6aa94f;"># Se selecciona el dataset desde Keras</span> 4 mnist = tf.keras.datasets.mnist 5 6 <span style="color: #6aa94f;"># x_train: Variable para entrenar el modelo</span> 7 <span style="color: #6aa94f;"># x_test: Variable para evaluar el modelo</span> 8 <span style="color: #6aa94f;"># y_train: Columna de la etiqueta para entrenar el modelo</span> 9 <span style="color: #6aa94f;"># y_test: Columna de la etiqueta para evaluar el modelo</span> 10 <span style="color: #dcdcdc;">(</span>x_train<span style="color: #dcdcdc;">,</span> y_train<span style="color: #dcdcdc;">),</span> <span style="color: #dcdcdc;">(</span>x_test<span style="color: #dcdcdc;">,</span> y_test<span style="color: #dcdcdc;">)</span> = mnist.load_data<span style="color: #dcdcdc;">()</span> 11 12 <span style="color: #6aa94f;"># Modelo secuencial de capas de la red neuronal</span> 13 model = tf.keras.models.Sequential<span style="color: #dcdcdc;">([</span> 14 <span style="color: #6aa94f;">#tf.keras.layers.Flatten(input_shape=(28, 28)), # Entrada son imágenes de 28x28</span> 15 tf.keras.layers.Input<span style="color: #dcdcdc;">(</span>shape=<span style="color: #dcdcdc;">(</span><span style="color: #b5cea8;">28</span><span style="color: #dcdcdc;">,</span> <span style="color: #b5cea8;">28</span><span style="color: #dcdcdc;">)),</span> <span style="color: #6aa94f;"># Entrada son imágenes de 28x28</span> 16 tf.keras.layers.Flatten<span style="color: #dcdcdc;">(),</span> 17 tf.keras.layers.Dense<span style="color: #dcdcdc;">(</span><span style="color: #b5cea8;">128</span><span style="color: #dcdcdc;">,</span> activation=<span style="color: #ce9178;">'relu'</span><span style="color: #dcdcdc;">),</span> <span style="color: #6aa94f;"># Capa tipo densa, cuántas neuronas y la activación</span> 18 tf.keras.layers.Dropout<span style="color: #dcdcdc;">(</span><span style="color: #b5cea8;">0.2</span><span style="color: #dcdcdc;">),</span> <span style="color: #6aa94f;"># Limpiar</span> 19 tf.keras.layers.Dense<span style="color: #dcdcdc;">(</span><span style="color: #b5cea8;">10</span><span style="color: #dcdcdc;">,</span> activation=<span style="color: #ce9178;">'softmax'</span><span style="color: #dcdcdc;">)</span> <span style="color: #6aa94f;"># Softmax es función de activación común</span> 20 <span style="color: #dcdcdc;">])</span> 21 22 <span style="color: #6aa94f;"># Se define la optimización, la pérdida (rendimiento) y las métricas (exactitud)</span> 23 model.<span style="color: #dcdcaa;">compile</span><span style="color: #dcdcdc;">(</span>optimizer=<span style="color: #ce9178;">'adam'</span><span style="color: #dcdcdc;">,</span> <span style="color: #6aa94f;"># Existen varios tipos de optimizadores</span> 24 loss=<span style="color: #ce9178;">'sparse_categorical_crossentropy'</span><span style="color: #dcdcdc;">,</span> 25 metrics=<span style="color: #dcdcdc;">[</span><span style="color: #ce9178;">'accuracy'</span><span style="color: #dcdcdc;">])</span> 26 <span style="color: #6aa94f;"># Para entrenar el modelo</span> 27 model.fit<span style="color: #dcdcdc;">(</span>x_train<span style="color: #dcdcdc;">,</span> y_train<span style="color: #dcdcdc;">,</span> epochs=<span style="color: #b5cea8;">5</span><span style="color: #dcdcdc;">)</span> <span style="color: #6aa94f;"># epochs: Entrenar 5 veces, como ciclos de entrenamiento</span> 28 29 <span style="color: #6aa94f;"># Evaluación de rendimiento</span> 30 model.evaluate<span style="color: #dcdcdc;">(</span>x_test<span style="color: #dcdcdc;">,</span> y_test<span style="color: #dcdcdc;">,</span> verbose=<span style="color: #b5cea8;">2</span><span style="color: #dcdcdc;">)</span> 31 32 33 34 35 36

Así quedaría con el cambio


Videos Desactualizados

Mariano Salazar@marianosalazar161

Igual que en clases anteriores de este mismo curso de GO, las librerías o funciones que usan estan desactualizadas. Deberían de tener contenido más al día. Por ejemplo acá usan "ioutil" para leer los archivos y actualmente eso cambio a "os"


Nombre de Interfaces

Mariano Salazar@marianosalazar161

Excelente clase solo tengo una duda, en el curso de programación orientada a objetos con GO explicaste que las interfaces deben terminar en "er" y diste ejemplos como Writer o Stringer; pero en este video creaste la interfaz como Storage. Entonces no hay problema si un interfaz no cumple con el "er" del final ?


Actualizar clase

Mariano Salazar@marianosalazar161

Por favor actualizar esta clase porque con los pasos que se indican en el video no permite hacer el import del modulo desde github