Процесс завершен с кодом выхода 134 (прерван сигналом 6: SIGABRT) с Tensorflow на Mac M1Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Процесс завершен с кодом выхода 134 (прерван сигналом 6: SIGABRT) с Tensorflow на Mac M1

Сообщение Anonymous »

В настоящее время я пытаюсь запустить Tensorflow на Mac с чипом M1, и программа постоянно прерывается при обучении модели.
Код, который я пробовал, находится здесь:

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

import numpy as np
import scipy.io as spio
from sklearn.model_selection import train_test_split
from tensorflow.keras.utils import to_categorical
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv1D, MaxPooling1D, Flatten, Dense, Dropout
from tensorflow.keras.optimizers.legacy import Adam

# Load D1 dataset
data = spio.loadmat('datasets/data1.mat', squeeze_me=True)
d = data['d']  # Raw signal
Index = data['Index']  # Spike locations (sample indices)
Class = data['Class']  # Spike classes

# Extract spike segments
def extract_spikes(signal, indices, classes, window_size=50):
spikes = []
labels = []
for i, idx in enumerate(indices):
start = max(0, idx - window_size // 2)
end = min(len(signal), idx + window_size // 2)
segment = signal[start:end]
if len(segment) == window_size:  # Ensure consistent segment size
spikes.append(segment)
labels.append(classes[i])
return np.array(spikes), np.array(labels)

# Parameters
window_size = 50  # Number of samples per spike segment

# Extract data
spike_segments, spike_labels = extract_spikes(d, Index, Class, window_size)

# Normalize data
spike_segments = (spike_segments - np.mean(spike_segments, axis=1, keepdims=True)) / np.std(spike_segments, axis=1, keepdims=True)

# One-hot encode labels for TensorFlow
spike_labels_onehot = to_categorical(spike_labels - 1, num_classes=5)  # Classes are 1–5, convert to 0–4 for indexing

# Split into training and validation sets
X_train, X_val, y_train, y_val = train_test_split(spike_segments, spike_labels_onehot, test_size=0.2, random_state=42)

# Reshape for TensorFlow (add channel dimension)
X_train = X_train[..., np.newaxis]
X_val = X_val[..., np.newaxis]

# Define CNN model
def build_cnn(window_size):
model = Sequential([
Conv1D(16, kernel_size=5, activation='relu', input_shape=(window_size, 1), padding='same'),
MaxPooling1D(pool_size=2),
Conv1D(32, kernel_size=5, activation='relu', padding='same'),
MaxPooling1D(pool_size=2),
Flatten(),
Dense(128, activation='relu'),
Dropout(0.5),  # Regularization
Dense(5, activation='softmax')  # 5 classes (softmax for multi-class classification)
])
return model

# Build model
model = build_cnn(window_size)

# Compile the model
model.compile(optimizer=Adam(learning_rate=0.001),
loss='categorical_crossentropy',
metrics=['accuracy'])

# Train the model
history = model.fit(X_train, y_train,
validation_data=(X_val, y_val),
epochs=10,
batch_size=16,
verbose=1)
Кажется, что код дает сбой на строке model.fit, когда начинается обучение.
Это то, что выдает терминал времени выполнения, любые идеи о том, как это сделать. исправить это?
2024-12-03 12:30:31.590013: I metal_plugin/src/device/metal_device.cc:1154] Для металлического устройства установлено значение: Apple M1
03.12.2024 12:30:31.590039: I metal_plugin/src/device/metal_device.cc:296] системная память: 8,00 ГБ
03.12.2024 12:30:31.590044: I metal_plugin/src/device/metal_device.cc:313] maxCacheSize: 2,67 ГБ
2024-12-03 12:30:31.590348: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:306] Не удалось идентифицировать NUMA узел платформы GPU ID 0, по умолчанию до 0. Возможно, ваше ядро ​​не было создано с поддержкой NUMA.
2024-12-03 12:30:31.590590: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:272] Создано устройство TensorFlow (/job). :localhost/реплика:0/задача:0/устройство:GPU:0 с 0 МБ памяти) -> физическое PluggableDevice (устройство: 0, имя: METAL, идентификатор шины pci: )
Эпоха 1/10
2024-12-03 12:30:32.043363: I tensorflow/core/ grappler/optimizers/custom_graph_optimizer_registry.cc:117] Оптимизатор плагина для device_type Графический процессор включен.
Процесс завершен с кодом выхода 134 (прерван сигналом 6: SIGABRT)

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

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

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

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

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

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

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