質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

8570閲覧

Google Colaboratoryでのエラー

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/11/03 17:10

エラーメッセージ
下の、ここからーここまでと書いてあるコードを実行すると以下のようなエラーが出てしまいます。
どのようにすればよいでしょうか。
google colaboratoryで実行しています。

8 from keras.layers.advanced_activations import LeakyReLU
9 from keras.models import Sequential
---> 10 from keras.optimizers import Adam

ImportError: cannot import name 'Adam' from 'keras.optimizers' (/usr/local/lib/python3.7/dist-packages/keras/optimizers.py)


NOTE: If your import is failing due to a missing package, you can
manually install dependencies using either !pip or !apt.

該当のソースコード

#ここから
%matplotlib inline

import matplotlib.pyplot as plt
import numpy as np

from keras.datasets import mnist
from keras.layers import Dense, Flatten, Reshape
from keras.layers.advanced_activations import LeakyReLU
from keras.models import Sequential
from keras.optimizers import Adam
#ここまで

img_rows = 28
img_cols = 28
channels = 1

img_shape = (img_rows, img_cols, channels)

z_dim = 100

def build_generator(img_shape, z_dim):

model = Sequential() model.add(Dense(128, input_dim=z_dim)) model.add(LeakyReLU(alpha=0.01)) model.add(Dense(28 * 28 * 1, activation='tanh')) model.add(Reshape(img_shape)) return model

def build_discriminator(img_shape):

model = Sequential() model.add(Flatten(input_shape=img_shape)) model.add(Dense(128)) model.add(LeakyReLU(alpha=0.01)) model.add(Dense(1, activation='sigmoid')) return model

def build_gan(generator, discriminator):

model = Sequential() model.add(generator) model.add(discriminator) return model

discriminator = build_discriminator(img_shape)
discriminator.compile(loss='binary_crossentropy',
optimizer=Adam(),
metrics=['accuracy'])

generator = build_generator(img_shape, z_dim)

discriminator.trainable = False

gan = build_gan(generator, discriminator)
gan.compile(loss='binary_crossentropy', optimizer=Adam())

losses = []
accuracies = []
iteration_checkpoints = []

def train(iterations, batch_size, sample_interval):

(X_train, _), (_, _) = mnist.load_data() X_train = X_train / 127.5 - 1.0 X_train = np.expand_dims(X_train, axis=3) real = np.ones((batch_size, 1)) fake = np.zeros((batch_size, 1)) for iteration in range(iterations): idx = np.random.randint(0, X_train.shape[0], batch_size) imgs = X_train[idx] z = np.random.normal(0, 1, (batch_size, 100)) gen_imgs = generator.predict(z) d_loss_real = discriminator.train_on_batch(imgs, real) d_loss_fake = discriminator.train_on_batch(gen_imgs, fake) d_loss, accuracy = 0.5 * np.add(d_loss_real, d_loss_fake) z = np.random.normal(0, 1, (batch_size, 100)) gen_imgs = generator.predict(z) g_loss = gan.train_on_batch(z, real) if (iteration + 1) % sample_interval == 0: losses.append((d_loss, g_loss)) accuracies.append(100.0 * accuracy) iteration_checkpoints.append(iteration + 1) print("%d [D loss: %f, acc.: %.2f%%] [G loss: %f]" % (iteration + 1, d_loss, 100.0 * accuracy, g_loss)) sample_images(generator)

def sample_images(generator, image_grid_rows=4, image_grid_columns=4):

z = np.random.normal(0, 1, (image_grid_rows * image_grid_columns, z_dim)) gen_imgs = generator.predict(z) gen_imgs = 0.5 * gen_imgs + 0.5 fig, axs = plt.subplots(image_grid_rows, image_grid_columns, figsize=(4, 4), sharey=True, sharex=True) cnt = 0 for i in range(image_grid_rows): for j in range(image_grid_columns): axs[i, j].imshow(gen_imgs[cnt, :, :, 0], cmap='gray') axs[i, j].axis('off') cnt += 1

iterations = 20000
batch_size = 128
sample_interval = 1000

train(iterations, batch_size, sample_interval)

losses = np.array(losses)

plt.figure(figsize=(15, 5))
plt.plot(iteration_checkpoints, losses.T[0], label="Discriminator loss")
plt.plot(iteration_checkpoints, losses.T[1], label="Generator loss")

plt.xticks(iteration_checkpoints, rotation=90)

plt.title("Training Loss")
plt.xlabel("Iteration")
plt.ylabel("Loss")
plt.legend()

accuracies = np.array(accuracies)

plt.figure(figsize=(15, 5))
plt.plot(iteration_checkpoints, accuracies, label="Discriminator accuracy")

plt.xticks(iteration_checkpoints, rotation=90)
plt.yticks(range(0, 100, 5))

plt.title("Discriminator Accuracy")
plt.xlabel("Iteration")
plt.ylabel("Accuracy (%)")
plt.legend()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

kerasの前に、tensorflow.を付けて以下のようにインポートしてみて下さい

%matplotlib inline import matplotlib.pyplot as plt import numpy as np from tensorflow.keras.datasets import mnist from tensorflow.keras.layers import Dense, Flatten, Reshape from keras.layers.advanced_activations import LeakyReLU from tensorflow.keras.models import Sequential from tensorflow.keras.optimizers import Adam

下記サイトで説明されていますが、2ヶ月ほど前に multi-backend Keras というものが廃止されたのが原因のようです。
GPU docker image does not find keras

また

!pip uninstall keras !pip install keras

のようにkerasをインストールし直す方法や、

!pip install ../input/keras-wheel-260/Keras-2.4.3-py2.py3-none-any.whl

のようにバージョンを指定して、kerasをインストールすることでも エラーを回避できる場合があるようです。

投稿2021/11/04 01:13

編集2021/11/04 05:43
coffeebar

総合スコア140

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/11/04 05:16

ありがとうございます。 from tensorflow.keras.optimizers import Adamを最初に入れて実行してみても、 4 import numpy as np 5 ----> 6 from keras.datasets import mnist 7 from keras.layers import Dense, Flatten, Reshape 8 from keras.layers.advanced_activations import LeakyReLU /usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/monitoring.py in __init__(self, metric_name, metric_methods, label_length, *args) 133 self._metric_name, len(self._metric_methods))) 134 --> 135 self._metric = self._metric_methods[self._label_length].create(*args) 136 137 def __del__(self): AlreadyExistsError: Another metric with the same name already exists このようなエラーが出てしまうのですが、どのようにすればよいでしょうか?
coffeebar

2021/11/04 05:44 編集

回答を編集しました。 keras.layers.advanced_activations以外の全てのkerasの前に tensorflow. を付けてみて下さい
退会済みユーザー

退会済みユーザー

2021/11/04 06:12

追加の質問にも優しく答えていただきありがとうございます。 エラーが出ずに、実行可能になりました。 ありがとうございました!
jbpb0

2021/11/04 08:24

質問者さん > from keras.layers.advanced_activations import LeakyReLU にも tensorflow. を付けてください keras.* と tensorflow.keras.* は、混ぜないで、どちらかだけに統一します
coffeebar

2021/11/04 08:47 編集

from tensorflow.keras.layers.advanced_activations import LeakyReLU とすると、google colaboratoryで ``` ModuleNotFoundError: No module named 'tensorflow.keras.layers.advanced_activations' ``` とエラーが出てしまうので、上記のように回答しました。 keras.layers.advanced_activations だけは tensorflow. を抜いても読み込めます。
jbpb0

2021/11/04 08:53

> ModuleNotFoundError: No module named 'tensorflow.keras.layers.advanced_activations' from tensorflow.keras.layers.advanced_activations import LeakyReLU ↓ 変更 from tensorflow.keras.layers import LeakyReLU
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問