Python Jupyter笔记本和Keras TQM:AttributeError:';TQDMNotebookCallback';对象没有属性';在列车上批量开始';
我试图在Jupyter笔记本中使用进度条,但我不断从标题中得到错误 我的代码是:Python Jupyter笔记本和Keras TQM:AttributeError:';TQDMNotebookCallback';对象没有属性';在列车上批量开始';,python,keras,jupyter-notebook,attributeerror,tqdm,Python,Keras,Jupyter Notebook,Attributeerror,Tqdm,我试图在Jupyter笔记本中使用进度条,但我不断从标题中得到错误 我的代码是: X_train, X_val, Y_train, Y_val = train_test_split(X_train, Y_train, test_size=0.1,random_state=2) model = keras.Sequential([keras.layers.Flatten(input_shape=(28,28,1)), keras.layers.D
X_train, X_val, Y_train, Y_val = train_test_split(X_train, Y_train, test_size=0.1,random_state=2)
model = keras.Sequential([keras.layers.Flatten(input_shape=(28,28,1)),
keras.layers.Dense(128, activation=tf.nn.relu),
keras.layers.Dense(10, activation=tf.nn.softmax
)])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
history = model.fit(X_train, Y_train, epochs=5, verbose=0, callbacks=[TQDMNotebookCallback()])
运行最后一行后,我出现以下错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-27-edd4c9b07979> in <module>
----> 1 history = model.fit(X_train, Y_train, epochs=5, verbose=0, callbacks=[TQDMNotebookCallback()])
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, max_queue_size, workers, use_multiprocessing, **kwargs)
878 initial_epoch=initial_epoch,
879 steps_per_epoch=steps_per_epoch,
--> 880 validation_steps=validation_steps)
881
882 def evaluate(self,
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tensorflow/python/keras/engine/training_arrays.py in model_iteration(model, inputs, targets, sample_weights, batch_size, epochs, verbose, callbacks, val_inputs, val_targets, val_sample_weights, shuffle, initial_epoch, steps_per_epoch, validation_steps, mode, validation_in_fit, **kwargs)
323 # Callbacks batch_begin.
324 batch_logs = {'batch': batch_index, 'size': len(batch_ids)}
--> 325 callbacks._call_batch_hook(mode, 'begin', batch_index, batch_logs)
326 progbar.on_batch_begin(batch_index, batch_logs)
327
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tensorflow/python/keras/callbacks.py in _call_batch_hook(self, mode, hook, batch, logs)
194 t_before_callbacks = time.time()
195 for callback in self.callbacks:
--> 196 batch_hook = getattr(callback, hook_name)
197 batch_hook(batch, logs)
198 self._delta_ts[hook_name].append(time.time() - t_before_callbacks)
AttributeError: 'TQDMNotebookCallback' object has no attribute 'on_train_batch_begin'
---------------------------------------------------------------------------
AttributeError回溯(最近一次呼叫上次)
在里面
---->1 history=model.fit(X_-train,Y_-train,epochs=5,verbose=0,回调=[TQDMNotebookCallback()]))
/fit中的Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tensorflow/Python/keras/engine/training.py(self、x、y、批处理大小、历元、冗余、回调、验证拆分、验证数据、随机、类权重、样本权重、初始历元、每历元的步骤、验证步骤、最大队列大小、工作者、使用多处理、**kwargs)
878初始纪元=初始纪元,
879步/u历元=步/u历元,
-->880验证步骤=验证步骤)
881
882 def评估(自我,
/模型迭代中的Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tensorflow/Python/keras/engine/training\u arrays.py(模型、输入、目标、样本权重、批量大小、年代、详细信息、回调、val_输入、val_目标、val_样本权重、混洗、初始_历元、每历元步数、验证步骤、模式、验证适合度,**kwargs)
323#开始回调批处理。
324批处理日志={'batch':批处理索引,'size':len(批处理ID)}
-->325回调。调用批处理钩子(模式“开始”、批处理索引、批处理日志)
326程序条。在批处理开始时(批处理索引、批处理日志)
327
/库/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tensorflow/Python/keras/callbacks.py in_call_batch_hook(self、mode、hook、batch、logs)
194 t_before_回调=time.time()
195对于self.callbacks中的回调:
-->196批处理钩子=getattr(回调,钩子名称)
197批次挂钩(批次、日志)
198 self._delta_ts[hook_name].append(time.time()-t_-before_回调)
AttributeError:'TQDMNotebookCallback'对象在\u train\u batch\u begin'上没有属性'
这似乎是.From的问题
本期中发布的解决方案对我有效:
from keras_tqdm import TQDMNotebookCallback
# keras, model definition...
cb = TQDMNotebookCallback()
setattr(cb,'on_train_batch_begin',lambda x,y:None)
setattr(cb,'on_train_batch_end',lambda x,y:None)
model.fit(X_train, Y_train, verbose=0, callbacks=[cb])
简介:直接使用keras库,而不是tensorflow.keras 最初,我使用的是tensorflow中的keras(以及tensorflow中的所有keras库),并面临相同的问题,即
from tensorflow.keras.models import Sequential
from tensorflow.keras.optimizers import Adam
.
.
但是,当我切换到keras库时,“TQDMNotebookCallback”错误得到了解决。
例:
我不知道确切的原因,但可能与克拉斯的来源有关
from keras.models import Sequential
from keras.optimizers import Adam
.
.