Arhn - архитектура программирования

Я не мог сохранить последовательную модель в Keras

## Step 1) Import Libraries

import os
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICE"] = ""

from tensorflow.python.client import device_lib;
print(device_lib.list_local_devices());

import keras
import numpy as np
from keras.datasets import cifar10
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Conv2D, MaxPooling2D

#### Set some parameters

batch_size = 256
num_classes = 10
epochs = 3

## Step 2) Load and Prepare data|

(x_train, y_train), (x_test, y_test) = cifar10.load_data()
print('x_train shape:', x_train.shape)
print('y_train shape:', y_train.shape)
print(x_train.shape[0], 'train samples')
print(x_test.shape[0], 'test samples')

### Prepare data

x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255

import matplotlib.pyplot as plt
%matplotlib inline

plt.figure()
fig_size = [20, 20]

plt.rcParams["figure.figsize"] = fig_size

idx = 0
for idx in range(1,101):
    ax = plt.subplot(10, 10, idx)
    img = x_train[idx,:,:,:]
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
    plt.imshow(img, cmap="Greys_r")
plt.show()

#### Preprocess class lables

y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical(y_test, num_classes)

#### Data Augmentation

datagen = ImageDataGenerator(
featurewise_center = False, # set input mean to over the dataset
samplewise_center = False, # set each sample mean to 0
featurewise_std_normalization = False, # divide inputs of the dataset
samplewise_std_normalization = False, # divide each input by its std
zca_whitening = False, # apply ZCA whitening
rotation_range = 0, # randomply rotate images in the range (degrees, 0 to 180)
width_shift_range = 0.1, # randomly shift images horiznontally (fraction of totla width)
height_shift_range = 0.1, # randomly shift images vertically (fraction of total height)
horizontal_flip = True, # randomly flip images
vertical_flip = False) # randomly flip images


## Setp 3) Define model architecture

model = Sequential()

model.add(Conv2D(32, (3,3), padding = 'same', activation = 'relu', input_shape = x_train.shape[1:]))

model.add(Conv2D(32, (3,3), activation = 'relu',))
model.add(MaxPooling2D(pool_size = (2,2)))
model.add(Dropout(0.25))

model.add(Conv2D(64, (3,3), padding = 'same', activation = 'relu',))

model.add(Conv2D(64, (3,3), activation = 'relu',))
model.add(MaxPooling2D(pool_size = (2,2)))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(512, activation = 'relu',))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation = 'softmax'))

## Step 4) Compile model

# model.compile(loss='categorical_crossentropy', optimizer = 'Adagrad', metrics = ['accuracy'])
model.compile(loss='categorical_crossentropy', optimizer = 'Adam', metrics = ['accuracy'])

#### Summary of model

model.summary()

## Step 5) Fit model on training data

# Compute quantities required for feature-wise normalization
# (std, mean, and principal components if ZCA whitening is applied).
datagen.fit(x_train)

# Fit the model on the batches generated by datagen.flow().
model.fit_generator(datagen.flow(x_train, y_train, batch_size = batch_size),
                    steps_per_epoch = x_train.shape[0] // batch_size, # // is the quotient without remainder
                    epochs = epochs, 
                    validation_data = (x_test, y_test))

model.save('my_model')

А у меня ошибка


AttributeError                            Traceback (most recent call last)
<ipython-input-18-b71b28267016> in <module>
      1 from tensorflow.keras.models import load_model
----> 2 model.save('my_model')

~\anaconda3\envs\tf\lib\site-packages\keras\engine\network.py in save(self, filepath, overwrite, include_optimizer)
   1150             raise NotImplementedError
   1151         from ..models import save_model
-> 1152         save_model(self, filepath, overwrite, include_optimizer)
   1153 
   1154     @saving.allow_write_to_gcs

~\anaconda3\envs\tf\lib\site-packages\keras\engine\saving.py in save_wrapper(obj, filepath, overwrite, *args, **kwargs)
    447                 os.remove(tmp_filepath)
    448         else:
--> 449             save_function(obj, filepath, overwrite, *args, **kwargs)
    450 
    451     return save_wrapper

~\anaconda3\envs\tf\lib\site-packages\keras\engine\saving.py in save_model(model, filepath, overwrite, include_optimizer)
    539                 return
    540         with H5Dict(filepath, mode='w') as h5dict:
--> 541             _serialize_model(model, h5dict, include_optimizer)
    542     elif hasattr(filepath, 'write') and callable(filepath.write):
    543         # write as binary stream

~\anaconda3\envs\tf\lib\site-packages\keras\engine\saving.py in _serialize_model(model, h5dict, include_optimizer)
    161             layer_group[name] = val
    162     if include_optimizer and model.optimizer:
--> 163         if isinstance(model.optimizer, optimizers.TFOptimizer):
    164             warnings.warn(
    165                 'TensorFlow optimizers do not '

AttributeError: module 'keras.optimizers' has no attribute 'TFOptimizer'

Я обучил последовательную модель и попытался сохранить ее с помощью кода model.save (имя файла), но он говорит AttributeError: модуль «keras.optimizers» не имеет атрибута «TFOptimizer»

Ошибка появляется на model.save(путь). Не знаю, почему я не смог сохранить последовательную модель. Эта ошибка появляется, даже когда я напрямую импортирую TFOptimizer из keras.optimizers. Я также установил H

01.07.2020

  • Попробуйте изменить оптимизатор вашей модели со строки Adam на keras.optimizers.Adam. Я считаю, что ошибка заключается в том, что вы передаете значение в параметр оптимизатора, но это приводит к тому, что проверка if isinstance выдает видимое исключение. 01.07.2020
  • Спасибо за комментарий. Но такое же сообщение об ошибке появляется, когда я попробовал ваш способ. Я установил как model.compile(потеря='categorical_crossentropy', оптимизатор = keras.optimizers.Adam(lr = 0.001), metrics = ['accuracy']) 01.07.2020
  • Ваш пример кода выполнился без проблем для меня. Мне пришлось закомментировать график, потому что у меня не установлен Tkinter. Я не могу воссоздать ошибку, которую вы получаете. 01.07.2020

Ответы:


1

У меня такая же проблема. Когда я сменил версию keras и tensorflow на keras2.2.5 и tensorflow1.14.0, проблема решилась.

03.02.2021
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..