Model.eval () возвращает неэтип -объект при использовании DeepSpeedPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Model.eval () возвращает неэтип -объект при использовании DeepSpeed

Сообщение Anonymous »

Когда я хочу ускорить обучение модели с помощью DeepSpeed, возникла проблема, когда я хочу оценить модель на наборе данных проверки. Вот фрагмент кода проблемы: < /p>

Код: Выделить всё

def evaluate(self, epoch_num=None, keep_all=True):
print("self.model:", self.model)

self.model = self.model.eval()
print("self.model after eval:", self.model)
< /code>
Тогда выходной журнал: < /p>
self.model: DeepSpeedEngine(
(module): TSTransformerEncoder(
(project_inp): Linear(in_features=6, out_features=128, bias=True)
(pos_enc): LearnablePositionalEncoding(
(dropout): Dropout(p=0.1, inplace=False)
)
(transformer_encoder): TransformerEncoder(
(layers): ModuleList(
(0-2): 3 x TransformerBatchNormEncoderLayer(
(self_attn): MultiheadAttention(
(out_proj): NonDynamicallyQuantizableLinear(in_features=128, out_features=128, bias=True)
)
(linear1): Linear(in_features=128, out_features=256, bias=True)
(dropout): Dropout(p=0.1, inplace=False)
(linear2): Linear(in_features=256, out_features=128, bias=True)
(norm1): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(norm2): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(dropout1): Dropout(p=0.1, inplace=False)
(dropout2): Dropout(p=0.1, inplace=False)
)
)
)
(output_layer): Linear(in_features=128, out_features=6, bias=True)
(dropout1): Dropout(p=0.1, inplace=False)
)
)
self.model after eval: None
< /code>
Без использования инструмента DeepSpeed ​​модель может быть обучена и оценена нормально. Однако после использования DeepSpeed ​​возникает выше задача.    model, optimizer, _, _ = deepspeed.initialize(
model=model,
optimizer=optimizer,
config_params=ds_config
)
< /code>
Файл ds_config: < /p>
{
"fp16": {
"enabled": true,
"loss_scale": 0,
"loss_scale_window": 1000,
"initial_scale_power": 16,
"hysteresis": 2,
"min_loss_scale": 1
},

"optimizer": {
"params": {
"lr": 0.001,
"weight_decay": 0,
"optimizer_class": "optimizers.RAdam"
}
},

"zero_optimization": {
"stage": 1,
"overlap_comm": true,
"contiguous_gradients": true
},

"zero_allow_untested_optimizer": true,
"train_batch_size": 256,
"steps_per_print": 2000,
"wall_clock_breakdown": false
}
Анализ проблем
Я первоначально ожидал, что self.model.eval () только установит модель только в режим оценки, и сама модель не станет ни одной . Тем не менее, фактический вывод показывает, что Self.Model не становится после вызова метода eval () . I suspect that this might be related to the encapsulation or configuration of DeepSpeed, but I'm not sure about the specific cause.
Relevant Environment Information
  • Python Version: 3.8.20
  • PyTorch Версия : 2.4.1
  • версия DeepSpeed ​​: 0.16.4


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

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

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

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

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

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

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