吴恩达机器学习
本帖最后由 2830680393 于 2023-7-17 17:04 编辑吴恩达机器学习中代码:
import numpy as np
%matplotlib widget
import matplotlib.pyplot as plt
from lab_utils_uni import plt_intuition, plt_stationary, plt_update_onclick, soup_bowl
plt.style.use('./deeplearning.mplstyle')
在运行代码时报错如下:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In, line 4
2 get_ipython().run_line_magic('matplotlib', 'widget')
3 import matplotlib.pyplot as plt
----> 4 from lab_utils_uni import plt_intuition, plt_stationary, plt_update_onclick, soup_bowl
5 plt.style.use('deeplearning.mplstyle')
File ~\Desktop\2022-Machine-Learning-Specialization-main\Supervised Machine Learning Regression and Classification\week1\4.Regression Model\lab_utils_uni.py:11
9 from matplotlib.colors import LinearSegmentedColormap
10 from ipywidgets import interact
---> 11 from lab_utils_common import compute_cost
12 from lab_utils_common import dlblue, dlorange, dldarkred, dlmagenta, dlpurple, dlcolors
14 plt.style.use('./deeplearning.mplstyle')
File ~\Desktop\2022-Machine-Learning-Specialization-main\Supervised Machine Learning Regression and Classification\week1\4.Regression Model\lab_utils_common.py:9
6 import numpy as np
7 import matplotlib.pyplot as plt
----> 9 plt.style.use('./deeplearning.mplstyle')
10 dlblue = '#0096ff'; dlorange = '#FF9300'; dldarkred='#C00000'; dlmagenta='#FF40FF'; dlpurple='#7030A0';
11 dlcolors =
File D:\tool\anaconda\lib\site-packages\matplotlib\style\core.py:153, in use(style)
151 pkg, _, name = style.rpartition(".")
152 try:
--> 153 path = (importlib_resources.files(pkg)
154 / f"{name}.{STYLE_EXTENSION}")
155 style = _rc_params_in_file(path)
156 except (ModuleNotFoundError, IOError) as exc:
157 # There is an ambiguity whether a dotted name refers to a
158 # package.style_name or to a dotted file path.Currently,
(...)
161 # either use Path objects or be prepended with "./" and use
162 # the slash as marker for file paths.
File D:\tool\anaconda\lib\importlib\_common.py:22, in files(package)
17 def files(package):
18 # type: (Package) -> Traversable
19 """
20 Get a Traversable resource from a package
21 """
---> 22 return from_package(get_package(package))
File D:\tool\anaconda\lib\importlib\_common.py:66, in get_package(package)
60 def get_package(package):
61 # type: (Package) -> types.ModuleType
62 """Take a package name or module object and return the module.
63
64 Raise an exception if the resolved module is not a package.
65 """
---> 66 resolved = resolve(package)
67 if wrap_spec(resolved).submodule_search_locations is None:
68 raise TypeError(f'{package!r} is not a package')
File D:\tool\anaconda\lib\importlib\_common.py:57, in resolve(cand)
55 def resolve(cand):
56 # type: (Package) -> types.ModuleType
---> 57 return cand if isinstance(cand, types.ModuleType) else importlib.import_module(cand)
File D:\tool\anaconda\lib\importlib\__init__.py:121, in import_module(name, package)
118 if not package:
119 msg = ("the 'package' argument is required to perform a relative "
120 "import for {!r}")
--> 121 raise TypeError(msg.format(name))
122 for character in name:
123 if character != '.':
TypeError: the 'package' argument is required to perform a relative import for './deeplearning'
请问怎么解决啊?
这个错误提示是因为相对导入时缺少了包名。在您的代码中,plt.style.use('./deeplearning.mplstyle')中的'./deeplearning.mplstyle'应该是一个相对路径,但是缺少了包名。
解决方法是将相对路径改为绝对路径,或者使用正确的包名进行相对导入。您可以尝试以下两种方法:
1. 将相对路径改为绝对路径:
- 从错误提示中可以看到File ~\Desktop\2022-Machine-Learning-Specialization-main\Supervised Machine Learning Regression and Classification\week1\4.Regression Model\lab_utils_common.py,这是lab_utils_common.py文件的路径。
- 您可以根据这个路径,找到deeplearning.mplstyle文件的绝对路径,并将相对路径修改为绝对路径。
- 替换代码中的plt.style.use('./deeplearning.mplstyle')为plt.style.use('/path/to/deeplearning.mplstyle'),其中/path/to/deeplearning.mplstyle是deeplearning.mplstyle文件的实际路径。
2. 使用正确的包名进行相对导入:
- 根据错误提示,可以看到from lab_utils_common import compute_cost和from lab_utils_common import dlblue, dlorange, dldarkred, dlmagenta, dlpurple, dlcolors这两行代码是在lab_utils_uni.py文件中使用的。
- 您可以检查一下lab_utils_common.py文件所在的包名,并在lab_utils_uni.py文件中使用正确的包名进行相对导入。
- 替换代码中的from lab_utils_common import compute_cost和from lab_utils_common import dlblue, dlorange, dldarkred, dlmagenta, dlpurple, dlcolors为正确的包名形式,例如from package_name.lab_utils_common import compute_cost和from package_name.lab_utils_common import dlblue, dlorange, dldarkred, dlmagenta, dlpurple, dlcolors,其中package_name是lab_utils_common.py文件所在的包名。
请根据您的实际情况选择适合的解决方法。如果仍然有问题,请提供更多相关代码和详细的错误信息,以便我能够更好地帮助您解决问题。 错误信息显示,当你试图使用自定义的 matplotlib 样式时,系统无法找到你所引用的 'deeplearning.mplstyle' 文件。以下是几种可能的解决方案:
1. 确保 'deeplearning.mplstyle' 文件的路径正确。你可能需要提供一个相对路径或者绝对路径。根据你给出的错误信息,你可能是将样式文件放在了当前工作目录,那么应该这样引用它:
plt.style.use('./deeplearning.mplstyle')
如果样式文件不在当前工作目录,你需要提供相对路径或绝对路径,例如:
plt.style.use('/absolute/path/to/deeplearning.mplstyle')
# or
plt.style.use('relative/path/to/deeplearning.mplstyle')
2. 你也可以检查是否有权限读取样式文件。如果你没有权限,你可能需要更改文件权限。
3. 如果以上建议都不能解决问题,你可以尝试升级你的 matplotlib 到最新版本,可能是你的版本与这个特性不兼容。
希望以上的建议对你有所帮助。
以上是我对你问题的理解,如果有任何不对或者你有其他问题,请随时告诉我。
根据我从网上搜索到的信息,这个错误是由于您使用了相对导入的方式,但没有指定包名。相对导入需要使用`package`参数来指定相对于哪个包进行导入。
在您的代码中,您使用了`from .upload.urls import ...`这样的语句,但没有告诉Python`.upload.urls`是相对于哪个包的。这可能会导致Python无法找到正确的模块路径,从而抛出`TypeError`异常。
为了解决这个问题,您可以尝试以下几种方法:
- 使用绝对导入的方式,即不要在模块名前加点,而是直接写出完整的模块名,例如`from upload.urls import ...`。
- 在相对导入的语句中,添加`package`参数,指定当前模块所属的包名,例如`from .upload.urls import ..., package='courseworkupload'`。
- 确保您的项目目录中有一个`__init__.py`文件,以便Python将其识别为一个包。
页:
[1]