ValueError: аргументы clone_function и input_tensors поддерживаются только для последовательных или функциональных моделPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 ValueError: аргументы clone_function и input_tensors поддерживаются только для последовательных или функциональных модел

Сообщение Anonymous »

Я использую обучение с учетом квантования. Я обращаюсь к коду lstm в Интернете и хочу поместить QAT в lstm, но обнаружил ошибку ValueError.
ValueError Traceback (последний вызов последним)
в ()
4 возвращаемый слой
5
----> 6 annotated_model = tf.keras.models.clone_model(
7 модель,
8 clone_function=apply_quantization_to_dense,
/usr/local/lib/python3.10/dist-packages/tf_keras/src/models/cloning.py в clone_model(model, input_tensors, clone_function )
544 # Случай пользовательского класса модели
545 if clone_function или input_tensors:
--> 546 поднять ValueError(
547 «Аргументы clone_function и input_tensors»
548 "поддерживаются только для последовательных моделей"
ValueError: аргументы clone_function и input_tensors поддерживаются только для последовательных моделей или функциональных моделей. Полученная модель типа "Sequential" с clone_function= и input_tensors=None```
Вот мой код
import keras
from keras.layers import LSTM
from keras.layers import Dense, Activation
from keras.datasets import mnist
from keras.models import Sequential
from keras.optimizers import Adam

learning_rate = 0.001
training_iters = 20
batch_size = 128
display_step = 10

n_input = 28
n_step = 28
n_hidden = 128
n_classes = 10

(x_train, y_train), (x_test, y_test) = mnist.load_data()

x_train = x_train.reshape(-1, n_step, n_input)
x_test = x_test.reshape(-1, n_step, n_input)
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255

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

model = Sequential()
model.add(LSTM(n_hidden,
batch_input_shape=(None, n_step, n_input),
unroll=True))

model.add(Dense(n_classes))
model.add(Activation('softmax'))

adam = Adam(lr=learning_rate)
model.summary()
model.compile(optimizer=adam,
loss='categorical_crossentropy',
metrics=['accuracy'])

model.fit(x_train, y_train,
batch_size=batch_size,
epochs=training_iters,
verbose=1,
validation_data=(x_test, y_test))

scores = model.evaluate(x_test, y_test, verbose=0)
print('LSTM test score:', scores[0])
print('LSTM test accuracy:', scores[1])

def apply_quantization_to_dense(layer):
if isinstance(layer, tf.keras.layers.LSTM):
return tfmot.quantization.keras.quantize_annotate_layer(layer)
return layer

annotated_model = tf.keras.models.clone_model(
model,
clone_function=apply_quantization_to_dense,
)
qat_model = tfmot.quantization.keras.quantize_apply(annotated_model)
qat_model.summary()


Подробнее здесь: https://stackoverflow.com/questions/787 ... ted-for-se
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»