Ошибка OOM на графическом процессоре во время обучения RNN на этапе выбора модели, проблеме измерения тензора или неправPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка OOM на графическом процессоре во время обучения RNN на этапе выбора модели, проблеме измерения тензора или неправ

Сообщение Anonymous »

У меня есть тензор NLP, такой как поезд: (22k, 170, 300) val: (2k, 170, 300), тест: (25K, 170 300), где последние 300 - фаста -текстовые эмоции, также у меня есть один GPU Тесла 32 ГБ. Я делаю выбор модели на rnn, не обученном, пакет/buffer_size - 64 Слои - 5:

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

for config in param_grid:
model = self.create_model(config)
train = model.forward(embedded_training_data)
val = model.forward(embedded_val_data)
test= model.forward(embedded_test_data)
Созданная модель представляет собой последовательность Keras, где каждый слои являются keras.layers.bidereectional и sequence = true Следовательно, вывод 3D (пакет, временные рамки, функции), метод прямого это следующее и использует вычисления партий с именем compute_states: < /p>
def compute_states(self, x):
x_train_states = []
for i, layer in enumerate(self.layers):
outputs, r, b = layer(x)
x_train_states.append(outputs) # Aggiungi alla lista

x = outputs # Update input for next layer

return tf.concat(x_train_states, axis=2) if x_train_states else None

@tf.function
def forward(self, data):
total_samples = tf.shape(data)[0]
buffer_size = tf.constant(self.buffer_size, dtype=tf.int32)
num_batches = tf.cast(tf.math.ceil(total_samples / buffer_size), tf.int32)

states_array = tf.TensorArray(dtype=tf.float32, size=num_batches)

for i in tf.range(num_batches):
start_idx = i * buffer_size
end_idx = tf.minimum((i + 1) * buffer_size, total_samples)
batch = data[start_idx:end_idx]
states = self.compute_states(batch)
states_array = states_array.write(i, states)

states = states_array.concat()
return states
< /code>
Эти функции хороши и очень скорости на процессоре, но на графическом процессоре я получаю ошибку OOM при объединении партий (starts_array.concat ()). Я хотел бы знать, есть ли какие -либо проблемы в моем коде, и поэтому я мог бы оптимизировать его или если размеры тензоров неразрешимы.

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

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

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

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

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

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

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