1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Не запускается скрипт python в jupyter. Ошибку не выдает

Тема в разделе "python", создана пользователем searchengines, 4 июн 2019.


Поделиться в соц сетях

  1. searchengines

    searchengines Administrator

    Регистрация:
    5 янв 2019
    Сообщения:
    1.671
    Симпатии:
    2
    Баллы:
    38
    Написал скрипт по машинному обучению из туториала. Ошибку не выдает, но и не выводит данные. Сразу показывает что скрипт выполнен.

    import numpy as np
    import os
    import tensorflow
    import tensorflow.keras
    import matplotlib.pyplot as plt
    from tqdm import tqdm
    os.environ["KERAS_BACKEND"] = "tensorflow"
    np.random.seed(10)
    random_dim = 100
    def load_minst_data():
    (x_train, y_train), (x_test, y_test) = mnist.load_data()
    x_train = (x_train.astype(np.float32) - 127.5)/127.5
    x_train = x_train.reshape(60000, 784)
    return (x_train, y_train, x_test, y_test)
    def get_optimizer():
    return Adam(lr=0.0002, beta_1=0.5)
    def get_generator(optimizer):
    generator = Sequential()
    generator.add(Dence(256, input_dim=random_dim, kernel_initializer=initializers.RandomNormal(stddev=0.02)))
    generator.add(LeakyReLU(0.2))

    generator.add(Dance(512))
    generator.add(LeakyReLU(0.2))

    generator.add(Dance(1024))
    generator.add(LeakyReLU(0.2))

    generator.add(Dance(784, activation='tanh'))
    generator.compile(loss='binary_crossentropy', optimizer=optimizer)
    return generator
    def get_discriminator(optimizer):
    discriminator = Sequential()
    discriminator.add(Dense(1024, input_dim=784, kernel_initializer=initializers.RandomNormal(stddev=0.02)))
    discriminator.add(LeakyReLU(0.2))
    discriminator.add(Dropout(0.3))

    discriminator.add(Dence(512))
    discriminator.add(LeakyReLU(0.2))
    discriminator.add(Dropout(0.3))

    discriminator.add(Dence(256))
    discriminator.add(LeakyReLU(0.2))
    discriminator.add(Dropout(0.3))

    discriminator.add(Dence(1, activation='sigmoid'))
    discriminator.compile(loss='binary_crossentropy', optimizer=optimizer)
    def get_gan_network(discriminator, random_dim, generator, optimizer):
    discriminator.trainable =False
    gan_input = Input(shape=(random_dim))
    x = generator(gan_input)
    gan_output = discriminator(x)
    gan = Model(inputs=gan_input, outputs=gan_output)
    gan.compile(loss='binary_crossentropy', optimizer=optimizer)
    return gan
    def plot_generated_images(epoch, generator, examples=100, dim=(10, 10), figsize=(10, 10)):
    noise = np.random.normal(0, 1, size=[examples, random_dim])
    generated_images = generator.predict(noise)
    generated_images = generated_images.reshape(examples, 28, 28)

    plt.figure(figsize=figsize)
    for i in range(generated_images.shape[0]):
    plt.subplot(dim[0], dim[1], i+1)
    plt.imshow(generated_images, interpolation='nearest', cmap='gray_r')
    plt.axis('off')
    plt.tight_layout()
    plt.savefig('gan_generated_image_epoch_%d.png' % epoch)
    def train(epochs=1, batch_size=128):
    x_train, y_train, x_test, y_test = load_minst_data()
    batch_count = x_train.shape[0] / batch_size

    adam = get_optimizer()
    generator = get_generator(adam)
    discriminator = get_discriminator(adam)
    gan = get_gan_network(discriminator, random_dim, generator, adam)

    for e in range(1, epochs+1):
    print ('-'*15, 'Epoch %d' % e, '-'*15)
    for _ in tqdm(range(batch_count)):
    noise = np.random.normal(0, 1, size=[batch_size, random_dim])
    image_batch = x_train[np.random.randit(0, x_train.shape[0], batch_size)]

    generated_images = generator.predict(noise)
    X = np.concatenate([image_batch, generated_images])

    y_dis = np.zeros(2*batch_size)
    y_dis[:batch_size] = 0.9

    discriminator.trainable = True
    discriminator.train_on_batch(X, y_dis)

    noise = np.random.normal(0, 1, size=[batch_size, random_dim])
    y_gen = np.ones(batch_size)
    discriminator.trainable = False
    gan.train_on_batch(noise, y_gen)

    if e == 1 or e % 20 == 0:
    plot_generated_images(e, generator)

    if __name__ == '__main__':
    train(400, 128)
     

Поделиться этой страницей