Как определить переменную в TensorFlow

Я застрял в определении переменных.

Мой код:

import tensorflow as tf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPooling2D

mnist_data = tf.keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist_data.load_data()``


def scale_mnist_data(train_images, test_images):

return (train_images / 255, test_images / 255)


def train_model(model, scaled_train_images, train_labels):
scaled_train_images, scaled_test_images = scale_mnist_data(train_images, test_images)

До этого момента код работает гладко, но здесь

scaled_train_images = scaled_train_images[..., np.newaxis]
scaled_test_images = scaled_test_images[..., np.newaxis]

Я получаю эту ошибку:

NameError                                 Traceback (most recent call last)
<ipython-input-5-7e4c845d2449> in <module>
  1 # Add a dummy channel dimension
  2 
----> 3 scaled_train_images = scaled_train_images[..., np.newaxis]
  4 scaled_test_images = scaled_test_images[..., np.newaxis]

NameError: name 'scaled_train_images' is not defined

Интересно, можно ли вставить этот код def train_model(model, scaled_train_images, train_labels):. Но здесь я снова столкнулся с похожими проблемами, такими как история, кадр и некоторые другие переменные, которые невозможно определить.

К вашему сведению: я пытаюсь запустить свой код на курсе Coursera для Имперского лондонского колледжа: Начало работы с TensorFlow 2.

Я новичок, не знаю Python.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
184
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я считаю, что проблема в том, что вам нужно удалить строку:

def train_model(model, scaled_train_images, train_labels):

Python интерпретирует присваивание scaled_train_images, scaled_test_images как часть этой функции, а не выходит за ее рамки.

Вот блокнот по Python, который вы можете использовать в качестве справочного материала для этого курса: https://github.com/ahmadmustafaanis/Getting-Started-with-Tensorflow-2/blob/master/TF.Keras%20Sequential%20API%20Basics/MNISIT.ipynb

Спасибо за ваши комментарии и ссылки на блокнот. Я действительно оценил это. Но после удаления «def train_model(model, scaled_train_images, train_labels):» я все еще получаю сообщение об ошибке «не могу распаковать неитерируемый объект NoneType».

Edmond 23.12.2020 09:26

Обновление: я отлично работаю в Google Colab, но столкнулся с множеством проблем, используя блокнот Jupyter. Большое спасибо за ваш спонтанный ответ.

Edmond 23.12.2020 10:12

Другие вопросы по теме