本文记录 keras 使用过程中遇到的一些问题,不定期更新。
1、查看 keras 版本
python -c "import keras; print keras.__version__"
2、更新 keras
sudo pip install --upgrade keras
3、修改 keras 的 backend
方法1
在users
文件夹下新建.keras
文件夹,在文件夹下新建keras.json
文件,json内容为:
{
"image_dim_ordering": "tf",
"epsilon": 1e-07,
"floatx": "float32",
"backend": "tensorflow"
}
- 这其中的backend可以是
tensorflow
或者theano
,当然前提是你已经安装好了。
但是上面这种方式有一个弊端就是每次当你想切换backend的时候都需要手动修改这个文件,所以有一种能够动态修改的方式不是更好吗?请看下面的方法:
方法2
import os
os.environ['KERAS_BACKEND'] = 'tensorflow'
import keras.backend as K
K.set_image_dim_ordering('tf')
- 首先载入os库,将keras的backend修改为tensorflow,再将keras的backend加载,设置order为tensorflow格式。
方法3
KERAS_BACKEND=theano python -c "from keras import backend"
anaconda 进入和退出TensorFlow或pytorch环境
0)创建相应的环境:
conda create -n pytorch python=3.6
1)进入和退出环境
# To activate this environment, use
#
# $ conda activate pytorch
#
# To deactivate an active environment, use
#
# $ conda deactivate
2)下面的方法也可进入或退出环境
# To activate this environment, use
#
# $ source activate pytorch
#
# To deactivate an active environment, use
#
# $ source deactivate
# 有时候需要先
source ~/.bashrc
3)删除环境
# 以 pytorch 为环境名为例
conda remove -n pytorch --all
# 或者
conda remove -n pytorch
4、keras 中单独设置模型的每一层的权重
# 涉及到的相关函数: model.layers 和 layer.set_weights
# 例如
model.layer[0].set_weights(matrix)
5、Unexpected keyword argument passed to optimizer: learning_rate
在将之前训练好的模型,用load_model载入的时候,出现了上述错误。
原因:由于在新版本的keras中(指大于等于2.3.0版本),将原来的 lr 这一参数重命名为 leraning_rate,因此将 leraning_rate 重新改为 lr 即可解决报错问题
解决办法:
1、升级keras到2.3.0或以上
pip install --upgrade keras
2、修改原始model.compile的写法
# keras=2.2.4 写法
model.compile(loss='categorical_crossentropy',
optimizer=Adam( lr =lr_schedule(0)),
metrics=['accuracy'])
# keras=2.3.0 写法
model.compile(loss='categorical_crossentropy',
optimizer=Adam( learning_rate =lr_schedule(0)),
metrics=['accuracy'])