python - 在 Google Colab 上运行 autokeras 图像分类器教程时出错
问题描述
这里的 autokeras 教程https://colab.research.google.com/github/keras-team/autokeras/blob/master/docs/templates/tutorial/image_classification.ipynb
上线失败:
import autokeras as ak
# Initialize the image classifier.
clf = ak.ImageClassifier(max_trials=10) # It tries 10 different models.
# Feed the image classifier with training data.
clf.fit(x_train, y_train,epochs=3)
有错误:
AttributeError: in user code:
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:503 train_function *
outputs = self.distribute_strategy.run(
/usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:951 run **
return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:2290 call_for_each_replica
return self._call_for_each_replica(fn, args, kwargs)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:2649 _call_for_each_replica
return fn(*args, **kwargs)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:475 train_step **
self.compiled_metrics.update_state(y, y_pred, sample_weight)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/compile_utils.py:386 update_state
self._build(y_pred, y_true)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/compile_utils.py:317 _build
self._metrics, y_true, y_pred)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/util/nest.py:1118 map_structure_up_to
**kwargs)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/util/nest.py:1214 map_structure_with_tuple_paths_up_to
*flat_value_lists)]
/usr/local/lib/python3.6/dist-packages/tensorflow/python/util/nest.py:1213 <listcomp>
results = [func(*args, **kwargs) for args in zip(flat_path_list,
/usr/local/lib/python3.6/dist-packages/tensorflow/python/util/nest.py:1116 <lambda>
lambda _, *values: func(*values), # Discards the path arg.
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/compile_utils.py:416 _get_metric_objects
return [self._get_metric_object(m, y_t, y_p) for m in metrics]
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/compile_utils.py:416 <listcomp>
return [self._get_metric_object(m, y_t, y_p) for m in metrics]
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/compile_utils.py:437 _get_metric_object
y_t_rank = len(y_t.shape.as_list())
AttributeError: 'tuple' object has no attribute 'shape'
这是代码中的错误还是 Google Colab 设置中的错误?
解决方案
问题不在于代码,我自己在本地机器上尝试过,效果很好。真正的问题是这条线
pip install tensorflow
这条线pip
完全负责选择要安装的 tensorflow 版本,遗憾的是它选择安装tensorflow-2.2.0rc1
看起来有问题的 rc 版本autokeras
。
因此,要完成这项工作,您所要做的就是将版本修复为已知可以使用的最新稳定 tensorflow 版本autokeras
pip install tensorflow==2.1.0
推荐阅读
- flutter - Flutter TextField清除按钮位置错误
- apache-flink - 将 uid 添加到操作员会导致“无法映射操作员的检查点/保存点状态”
- android - Firebase 函数在 10 秒后在客户端提供超时
- javascript - 您如何定位和修改 Ionic/Angular 应用程序中的所有 CSS 元素实例?
- python-3.x - 如何在我的 Python 3 代码中添加异常处理?
- jquery - 将响应属性应用于 true 时,Jquery DataTable 加载数据缓慢
- javascript - 如何在 WebStorm 和 React JSX 中使用 JavaScript 流版本语言?
- javascript - 如何引用javascript json
- bash - Bash 脚本显示相同的成绩
- selenium - Chrome 无法启动 - Chrome 版本 75.0.3770.100