Я использую обучение с учетом квантования. Я обращаюсь к коду 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
ValueError: аргументы clone_function и input_tensors поддерживаются только для последовательных или функциональных модел ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
RuntimeError с Pytorch при тонкой настройке LLM: «Элемент 0 Tensors не требует выпускника»
Anonymous » » в форуме Python - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-