Это зависит от вашего приложения. Низкая загрузка графического процессора - не редкость. Попробуйте увеличить размер пакета для большего использования.
С учетом того, что сети размера MNIST крошечные, и для них трудно достичь высокой эффективности GPU (или CPU), я думаю, что использование 10% вместе с CPU не является чем-то необычным для вашего приложения. Вы получите более высокую вычислительную эффективность с большим размером пакета, что означает, что вы можете обрабатывать больше примеров в секунду, но вы также получите более низкую статистическую эффективность, а это означает, что вам нужно обработать больше примеров, чтобы достичь целевой точности. Так что это компромисс. Для крошечных моделей персонажей статистическая эффективность очень быстро падает после 100, поэтому, вероятно, не стоит пытаться увеличить размер партии для обучения. Для вывода вы должны использовать максимально возможный размер пакета.
Вы также можете установить тип устройства, который будет использоваться в вашей программе. В вашем случае заставьте вашу программу использовать только графический процессор и проверьте использование графического процессора.
Например, в программе использовать графический процессор только для модели. Fit
%tensorflow_version 2.x
print(tf.__version__)
# MLP for Pima Indians Dataset saved to single file
import numpy as np
from numpy import loadtxt
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.models import model_from_json
# load pima indians dataset
dataset = np.loadtxt("/content/pima-indians-diabetes.csv", delimiter=",")
# split into input (X) and output (Y) variables
X = dataset[:,0:8]
Y = dataset[:,8]
# define model
model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# compile model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Model Summary
model.summary()
# Fit the model
with tf.device("/device:GPU:0"):
model.fit(X, Y, epochs=150, batch_size=10, verbose=0)
# evaluate the model
scores = model.evaluate(X, Y, verbose=0)
print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
Вывод -
2.2.0
Model: "sequential_6"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_18 (Dense) (None, 12) 108
_________________________________________________________________
dense_19 (Dense) (None, 8) 104
_________________________________________________________________
dense_20 (Dense) (None, 1) 9
=================================================================
Total params: 221
Trainable params: 221
Non-trainable params: 0
_________________________________________________________________
accuracy: 78.39%
Надеюсь, это ответит на ваш вопрос. Удачного обучения.