输入:Một CSV chứa 50.000 hàng; mỗi hàng chứa 910 cột giá trị 0/1.
输出:Một khung dữ liệu để chạy CNN của tôi.
Tôi đã viết mã đọc từng dòng CSV. Đối với mỗi hàng, tôi chia dữ liệu thành hai phần gọi làtế bào thần kinh(900 cột) vàNhãn(10 cột). Vì đây là danh sách nên tôi đã chuyển đổi chúng thành mảng Numpy. Khi chuyển sang hàng tiếp theo, tôi làm tương tự và xếp chồng các mảng để có 4 tập dữ liệu thông thường:
x_train, x_test, y_train, y_test
Mã của tôi hoạt động tốt vì tôi đã thử nghiệm nó trên một CSV nhỏ chỉ có 6 hàng. Nhưng khi tôi chạy nó trên tập dữ liệu thực gồm 50.000 hàng, phải mất nhiều thời gian để chuyển đổi các hàng thành khung dữ liệu sau khi mảng được khởi tạo.
Vì vậy, tôi tự hỏi liệu có cách nào nhanh hơn để thực hiện chuyển đổi này hay tôi chỉ có thể đợi ở đây!
Đây là mã của tôi:
nhập numpy dưới dạng np
nhập gấu trúc dưới dạng pd
import time
từ keras.datasets nhập mnist
từ keras.models nhập tuần tự
từ keras.layers nhập dày đặc
từ keras.layers nhập Dropout
từ keras.utils nhập np_utils
từ sklearn.model_selection nhập train_test_split
# Đọc tập dữ liệu từ tệp CSV vào khung dữ liệu
df = pd.read_csv("bci_dataset_labelled.csv")
start_init = time.time()
xvalues = np.zeros((900,), dtype=np.int)
yvalues = np.zeros((10,), dtype=np.int)
print("--- Mảng được khởi tạo sau %s giây ---" % (time.time() - start_init))
start_conversion = time.time()
cho hàng trong df.itertuples(index=False):
# tách các nơ-ron khỏi nhãn
x = danh sách(hàng[:900])
y = danh sách(hàng[900:])
# chuyển đổi danh sách thành mảng có nhiều mảng
x = np.array(x)
y = np.array(y)
xvalues = np.vstack((xvalues, x))
yvalues = np.vstack((yvalues, y))
print("--- Hàng CSV được chuyển đổi thành khung dữ liệu sau %s giây ---" % (time.time() - start_conversion))
start_split = time.time()
x_train, x_test, y_train, y_test = train_test_split(xvalues, yvalues, test_size=0.2)
print("--- Dataframe chia thành các tập dữ liệu huấn luyện và kiểm tra trong %s giây ---" % (time.time() - start_split))
num_classes = y_test.shape[1]
num_neurons = x_train[0].shape[0]
# xác định mô hình cơ sở
def đường cơ sở_model():
#tạo mô hình
mô hình = Tuần tự()
model.add(Dày đặc(
số_tế bào thần kinh,
đầu vào_dim = num_neuron,
kernel_initializer = 'bình thường',
kích hoạt = 'relu'
))
model.add(Dày đặc(
num_class,
kernel_initializer = 'bình thường',
kích hoạt = 'softmax'
))
#biên dịch mô hình
model.compile(
mất mát = 'categorical_crossentropy',
trình tối ưu hóa = 'adam',
số liệu = ['độ chính xác'])
mô hình trả lại
#xây dựng mô hình
mô hình = đường cơ sở_model()
#phù hợp với mô hình
model.fit(x_train, y_train, validation_data = (x_test, y_test),
kỷ nguyên = 10, batch_size = 200, dài dòng = 2)
# đánh giá cuối cùng của mô hình
điểm = model.evaluate(x_test, y_test, chi tiết=0)
print("Lỗi cơ bản: %0.2f%%" % (100 điểm[1]*100))
Nó chỉ bị kẹt ở đây:
Rachayitas-MacBook-Pro:bci_hp rachayitagiri$ python3 nhị phâncnn.py
Sử dụng chương trình phụ trợ TensorFlow.
--- Mảng được khởi tạo sau 2,4080276489257812e-05 giây ---
Mọi lời khuyên sẽ được đánh giá rất cao Cảm ơn bạn!
EDIT: Tạo đầu ra dưới dạng văn bản cho bảng điều khiển chứ không phải hình ảnh. Cảm ơn lời khuyên của bạn.
Tôi là một lập trình viên xuất sắc, rất giỏi!