Nano Hash - криптовалюты, майнинг, программирование

построение образцов MNIST

Я пытаюсь построить 10 образцов из набора данных MNIST. По одной каждой цифры. Вот код:

import sklearn
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets

mnist = datasets.fetch_mldata('MNIST original')
y = mnist.target
X = mnist.data

for i in range(10):
    im_idx = np.argwhere(y == i)[0]
    print(im_idx)
    plottable_image = np.reshape(X[im_idx], (28, 28))
    plt.imshow(plottable_image, cmap='gray_r')
    plt.subplot(2, 5, i + 1)

plt.plot()

По какой-то причине нулевая цифра пропускается на графике.

Почему?


Ответы:


1

Ладно, я понял. Проблема заключалась в том, что вы определяли подзаговор после построения imshow. Итак, ваш первый сюжет был перезаписан вторым. Чтобы заставить ваш код работать, просто поменяйте местами две команды следующим образом. Кроме того, я не понимаю, почему вы используете plt.plot() в конце.

plt.subplot(2, 5, i + 1) # <-- You have put this command after imshow 
plt.imshow(plottable_image, cmap='gray_r')

Вот еще один вариант для вашего сведения:

fig = plt.figure()

for i in range(10):
    im_idx = np.argwhere(y == i)[0]
    plottable_image = np.reshape(X[im_idx], (28, 28))
    ax = fig.add_subplot(2, 5, i+1)
    ax.imshow(plottable_image, cmap='gray_r')

Вы также можете еще больше сократить код Скотта (опубликованный ниже), используя следующее:

fig, ax = plt.subplots(2,5)
for i, ax in enumerate(ax.flatten()):
    im_idx = np.argwhere(y == i)[0]
    plottable_image = np.reshape(X[im_idx], (28, 28))
    ax.imshow(plottable_image, cmap='gray_r')

введите здесь описание изображения

18.12.2018
  • Ищете причину, по которой OP-код работал? +1 к вашему решению. 18.12.2018
  • @ScottBoston: Нашел проблему 18.12.2018

  • 2

    Попробуй это:

    import sklearn
    import pandas as pd
    import matplotlib.pyplot as plt
    import numpy as np
    from sklearn import datasets
    
    mnist = datasets.fetch_mldata('MNIST original')
    y = mnist.target
    X = mnist.data
    
    fig, ax = plt.subplots(2,5)
    ax = ax.flatten()
    for i in range(10):
        im_idx = np.argwhere(y == i)[0]
        print(im_idx)
        plottable_image = np.reshape(X[im_idx], (28, 28))
        ax[i].imshow(plottable_image, cmap='gray_r')
    

    Выход:

    введите здесь описание изображения

    18.12.2018
  • Вот и голосование за ваше решение :) Проверьте мой альтернативный сокращенный ответ на ваш код. 18.12.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..