автордың кітабынан сөз тіркестері Искусственный интеллект и компьютерное зрение. Реальные проекты на Python, Keras и TensorFlow
и их влиянием на точность и скорость:
pca_dimensions = [1,2,3,4,5,10,20,50,75,100,150,200]
pca_accuracy = []
pca_time = []
for dimensions in pca_dimensions:
# найти главные компоненты
pca = PCA(n_components = dimensions)
pca.fit(feature_list)
feature_list_compressed = pca.transform(feature_list[:])
# Вычислить точность, обеспечиваемую сокращенным набором признаков
accuracy, time_taken = accuracy_calculator(feature_list_compressed[:])
pca_time.append(time_taken)
pca_accuracy.append(accuracy)
print("For PCA Dimensions = ", dimensions, ",\tAccuracy = ",accuracy,"%",
",\tTime = ", pca_time[-1])
# Применить метод главных компонент к векторам признаков
num_feature_dimensions=100 # Задать число признаков
pca = PCA(n_components = num_feature_dimensions)
pca.fit(featureList)
feature_list_compressed = pca.transform(featureList)
# Для скорости проанализируем только первую половину датасета.
selected_features = feature_list_compressed[:4000]
selected_class_ids = class_ids[:4000]
selected_filenames = filenames[:4000]
tsne_results =
TSNE(n_components=2,verbose=1,metric='euclidean')
.fit_transform(selected_features)
# Построить диаграмму рассеяния из результатов, полученных с помощью
# алгоритма t-SNE
colormap = plt.cm.get_cmap('coolwarm')
scatter_plot = plt.scatter(tsne_results[:,0],tsne_results[:,1],
c = selected_class_ids, cmap=colormap)
plt.colorbar(scatter_plot)
plt.show()
функции, которая выполняет рекурсивный поиск всех файлов изображений (по расширениям) в каталоге:
extensions = ['.jpg', '.JPG', '.jpeg', '.JPEG', '.png', '.PNG']
def get_file_list(root_dir):
file_list = []
counter = 1
for root, directories, filenames in os.walk(root_dir):
for filename in filenames:
if any(ext in filename for ext in extensions):
file_list.append(os.path.join(root, filename))
counter += 1
return file_list
Прежде чем перейти к ответам на эти вопросы, сделаем прогнозы для всех изображений в проверочном датасете. Настроим пайплайн:
# Переменные
IMG_WIDTH, IMG_HEIGHT = 224, 224
VALIDATION_DATA_DIR = 'data/val_data/'
VALIDATION_BATCH_SIZE = 64
# Генераторы данных
validation_datagen = ImageDataGenerator(
preprocessing_function=preprocess_input)
validation_generator = validation_datagen.flow_from_directory(
VALIDATION_DATA_DIR,
target_size=(IMG_WIDTH, IMG_HEIGHT),
batch_size=VALIDATION_BATCH_SIZE,
shuffle=False,
class_mode='categorical')
ground_truth = validation_generator.classes
Затем получим прогнозы:
predictions = model.predict_generator(validation_generator)
Чтобы упростить анализ, создадим словарь, в котором для каждого изображения сохраним индекс и его истинный класс (ожидаемый прогноз):
# prediction_table - это словарь (dict) с индексом, прогнозом и истинным
# классом (ground truth)
prediction_table = {}
for index, val in enumerate(predictions):
# получить индекс argmax
index_of_highest_probability = np.argmax(val)
value_of_highest_probability = val[index_of_highest_probability]
prediction_table[index] = [value_of_highest_probability,
index_of_highest_probability,
ground_truth[index]]
assert len(predictions) == len(ground_truth) == len(prediction_table)
Где найти код примеров из книги?
По адресу https://github.com/PracticalDL/Practical-Deep-Learning-Book.
Выбор функций потерь и активации в зависимости от стоящей задачи
Используя интерфейсы «наведи и щелкни», даже ваша бабушка сможет обучать нейронные сети.
Популярные инструменты с графическим интерфейсом для обучения моделей
Таблица 1.5. Популярные фреймворки глубокого обучения
Таблица 1.4. Примеры известных архитектур моделей
