------------------------------------------ code ---------------------------------------------------------
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
import time
from tensorflow.python.keras.utils import np_utils
from tensorflow.python.keras.layers.convolutional import Conv2D, MaxPooling2D
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers.core import Dense, Dropout, Activation, Flatten
from tensorflow.python.keras.preprocessing.image import array_to_img, img_to_array, load_img, ImageDataGenerator
from tensorflow.python.keras import optimizers
from tensorflow.python.keras.optimizers import Adam
import sys
import os
import shutil
# データーセットがあるディレクトリ(このプログラムから見た相対パス)
dataset_root_dir = "./datasets"
labels = [d for d in os.listdir(dataset_root_dir)
if os.path.isdir(os.path.join(dataset_root_dir, d))]
labels.sort()
with open(dataset_root_dir + "/labels.txt","w") as f:
for label in labels:
f.write(label+"\n")
NUM_CLASSES = len(labels)
print("class number="+ str(NUM_CLASSES))
## 学習率 :学習が進むスピード
LEARNING_RATE = 0.0001
## エポック数(世代数):学習を繰り返す回数
EPOCHS = 20
## バッチサイズ :一度に学習させるデーターの数
BATCH_SIZE = 32
Image_Size = 64
dataset_dir = dataset_root_dir
train_data_gen = ImageDataGenerator(rescale=1./255, validation_split=0.33)
train_data = train_data_gen.flow_from_directory(dataset_dir,
subset="training",
target_size=(Image_Size, Image_Size),
color_mode="rgb",
batch_size=BATCH_SIZE,
class_mode="categorical",
shuffle=True)
validation_data = train_data_gen.flow_from_directory(dataset_dir,
subset="validation",
target_size=(Image_Size, Image_Size),
color_mode="rgb",
batch_size=BATCH_SIZE,
class_mode="categorical",
shuffle=True)
model = Sequential()
model.add(Conv2D(32, (3,3), padding="same",
input_shape=(Image_Size, Image_Size, 3)))
model.add(Activation("relu"))
model.add(Conv2D(64,(3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128))
model.add(Activation("relu"))
model.add(Dropout(0.5))
model.add(Dense(NUM_CLASSES))
model.add(Activation("softmax"))
model.compile(optimizer=Adam(lr=LEARNING_RATE),
loss="categorical_crossentropy", metrics=["accuracy"])
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-6-f3a03fe666d5> in <module>
40 model.add(Activation("softmax"))
41
---> 42 model.compile(optimizer=Adam(lr=LEARNING_RATE),
43 loss="categorical_crossentropy", metrics=["accuracy"])
..............................
ValueError: ('`tf.compat.v1.keras` Optimizer (', <tensorflow.python.keras.optimizers.Adam object at 0x7f4c586d28b0>, ') is not supported when eager execution is enabled. Use a `tf.keras` Optimizer instead, or disable eager execution.')
このようなエラーです。
Jupyter notebook を使用しています。
どうやって解決できるでしょうか?
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
データがないから再現出来ないんですが、エラーメッセージを読む限り、
> ValueError: ('`tf.compat.v1.keras` Optimizer (', <tensorflow.python.keras.optimizers.Adam object at 0x7f4c586d28b0>, ') is not supported when eager execution is enabled. Use a `tf.keras` Optimizer instead, or disable eager execution.')
テキトーな訳: tensorflow.python.keras.optimizers.Adamはeager execution可の場合、サポートされていません。Adamの代わりにtf.kerasオプティマイザーを利用するか、あるいはeager executionを止めて下さい。
と言うわけで、
model.compile(optimizer=Adam(lr=LEARNING_RATE),
loss="categorical_crossentropy", metrics=["accuracy"])
のoptimizer変数を変えればいい、ってエラーが教えてくれています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) ColabでのPytorchのエラー 1 2022/11/19 20:51
- その他(プログラミング・Web制作) python 2 2022/12/23 09:06
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- その他(プログラミング・Web制作) pythonのエラーについて 2 2022/08/17 17:17
- 英語 できるだけ直訳で英語の翻訳をお願いします。(英語→日本語) 1 2022/10/15 20:59
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6.0でのTextboxの高さ変更
-
java junit list同士の比較方法
-
コンパイルエラー <identifier...
-
TextAreaでの文字の色
-
iアプリで複数の画面(パネル)...
-
JPanelの切り替えと再描画
-
javaで文字数制限するには?
-
KeyListenerの使い方について
-
エラーで式の開始が不正ですと...
-
ボタンクリック後パネルを再描...
-
4択クイズでのランダム出題の...
-
連番をオブジェクト名の最後に...
-
Enterキーでボタンを押すにはど...
-
キーボードから入力された全角...
-
タスクトレイのメニュからウィ...
-
ArrayListの使い方について(初...
-
c言語のプログラミングで1から1...
-
IF関数でEmpty値を設定する方法。
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
java junit list同士の比較方法
-
EXECLの行を削除
-
JPanelの切り替えと再描画
-
TextAreaでの文字の色
-
最後の行に移動するには?
-
コンパイルエラー <identifier...
-
連番をオブジェクト名の最後に...
-
JDialogを閉じた時の処理
-
JPanelの重ね方/OverlayLayout他
-
JTableの列ヘッダ
-
ボタンクリック後パネルを再描...
-
【Swing】JPanel クラス外から...
-
4択クイズでのランダム出題の...
-
次のように書いたのですが、ウ...
-
エラーで式の開始が不正ですと...
-
KeyListenerの使い方について
-
JavaでのSwingを使った簡易電卓...
-
あるコンボボックスを選択する...
-
ArrayListの使い方について(初...
-
VB6.0でのTextboxの高さ変更
おすすめ情報