1、问题描述
使用超参搜索框架optuna做并行化搜索参数,利用mysql数据集存储搜索结果时,提示no module named 'MySQLdb’错误。报错代码如下:
optuna.create_study(storage="mysql://root@localhost/database",
study="xxx",
direction="maximize", load_if_exists=True)
系统版本:ubuntu18.04
Python版本:3.6
2、具体报错
3、解决方案
这个原因产生主要是因为在Python3中这个库改变了形式。按照下述方式可以解决。
-
在python中安装pymysql(
pip install pymysql
) -
修改pymysql库中mysqldb.py文件,具体如下:
找到your_python_path/site-packages/sqlalchemy/dialects/mysql/mysqldb.py,然后使用nodepad++或者IDE打开该文件,添加下图红色框的代码即可解决该问题。
-
确定安装了mysql的客户端,若没安装,可以参考下述方式安装
ubuntu18.04安装mysql -
安装完成后如果提示
ERROR1698(28000):Access denied for user "root@localhost"
可以参考如下方式解决
https://www.cnblogs.com/cpl9412290130/p/9583868.html
4、后续
最近一直在忙论文的事,没有时间更新博客,忙完论文会更新一些干货。例如PyTorch加速,加快训练速度,调参等等。