赞
踩
使用 Jupyter Notebook 进行 GPU 加速的机器学习代码开发,通常涉及到利用 GPU 运行深度学习模型,特别是基于 TensorFlow 或 PyTorch 这样的深度学习框架。GPU 的并行计算能力可以显著加快模型训练的速度,尤其对于大规模数据集和复杂模型来说效果更为明显。
根据需要训练的数据进行机器学习建模
- import time
-
- start = time.time()
-
- import numpy as np # linear algebra
- import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
- from keras.models import Sequential
- from keras.layers import Conv2D, MaxPooling2D, Activation, Dropout, Flatten, Dense
- from keras.preprocessing.image import ImageDataGenerator, img_to_array, load_img
- import matplotlib.pyplot as plt
- from PIL import Image
- from glob import glob
- import os
-
- import os
- print(os.system('ls /dataset/stress_test_data_2'))
-
- train_path = '/dataset/stress_test_data_2/Training/'
- test_path = '/dataset/stress_test_data_2/Test/'
-
- img = load_img(train_path + "Apple Braeburn/0_100.jpg", target_size=(100,100))
- plt.imshow(img)
- plt.axis("off")
- plt.show()
-
- images = ['Orange', 'Banana', 'Cauliflower', 'Cactus fruit', 'Eggplant', 'Avocado', 'Blueberry','Lemon', 'Kiwi']
-
- import matplotlib.pyplot as plt
- import numpy as np
-
- fig = plt.figure(figsize =(15,5))
- for i in range(9):
- ax = fig.add_subplot(3,3,i+1,xticks=[],yticks=[])
- #fig.patch.set_facecolor('#E53090')
- #Above code adds a background color for subplots you can change the hex color code as you wish
- plt.title(images[i])
- plt.axis("off")
- ax.imshow(load_img(train_path + images[i] +"/0_100.jpg", target_size=(100,100)))
-
- x = img_to_array(img)
- print(x.shape)
-
- className = glob(train_path + '/*')
- number_of_class = len(className)
- print(number_of_class)
-
- model = Sequential()
- model.add(Conv2D(32, (3,3), input_shape= x.shape))
- model.add(Activation("relu"))
- model.add(MaxPooling2D())
-
- model.add(Conv2D(32, (3,3),))
- model.add(Activation("relu"))
- model.add(MaxPooling2D())
-
- model.add(Conv2D(64, (3,3),))
- model.add(Activation("relu"))
- model.add(MaxPooling2D())
-
- model.add(Flatten())
- model.add(Dense(1024))
- model.add(Activation("relu"))
- model.add(Dropout(0.5))
- model.add(Dense(number_of_class))#output
- model.add(Activation("softmax"))
-
- model.compile(loss = "categorical_crossentropy",
- optimizer = "rmsprop",
- metrics = ["accuracy"])
-
- model.summary()
-
- batch_size = 32
-
-
- train_datagen = ImageDataGenerator(rescale = 1./255,
- shear_range = 0.3,
- horizontal_flip=True,
- vertical_flip=False,
- zoom_range = 0.3
- )
- test_datagen = ImageDataGenerator(rescale = 1./255)
-
- train_generator = train_datagen.flow_from_directory(train_path,
- target_size=x.shape[:2],
- batch_size = batch_size,
- color_mode= "rgb",
- class_mode = "categorical")
- test_generator = test_datagen.flow_from_directory(test_path,
- target_size=x.shape[:2],
- batch_size = batch_size,
- color_mode= "rgb",
- class_mode = "categorical")
-
- hist = model.fit_generator(generator = train_generator,
- steps_per_epoch = 1600 // batch_size,
- epochs = 50,
- validation_data = test_generator,
- validation_steps = 800 // batch_size)
-
-
- print(hist.history.keys())
-
- plt.plot(hist.history["loss"], label = "Train Loss")
- plt.plot(hist.history["val_loss"], label = "Validation Loss")
- plt.legend()
- plt.show()
-
- plt.plot(hist.history["accuracy"], label = "Train Accuracy")
- plt.plot(hist.history["val_accuracy"], label = "Validation Accuracy")
- plt.legend()
- plt.show()
-
- end = time.time()
-
- print("time cost",end - start)
-
在 Jupyter Notebook 中进行 GPU 加速的机器学习代码开发,可以带来训练速度的显著提升,尤其适用于大规模数据和复杂模型的场景。同时,结合 Jupyter Notebook 的交互式编程和展示优势,可以更方便地进行实验、调试和结果展示。如果你需要进一步的帮助或有其他问题,请随时告诉我。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。