项目特定keras配置的推荐方法?

项目特定keras配置的推荐方法?,keras,Keras,我的目标是在每个项目的基础上维护keras配置,例如,一个项目更喜欢theano后端,另一个项目更喜欢tensorflow后端。作为奖励,我想与其他开发人员相对无缝地共享此配置 以下是一些想法: keras配置能否由虚拟环境管理/在虚拟环境中管理 我是否应该使用dotenv或autoenv之类的工具来管理一些共享环境配置(通过KERAS\u BACKEND环境变量) 在使用$HOME中的版本之前,是否应更新keras以在工作树中查找.keras/keras.json文件 keras配置能否由虚拟

我的目标是在每个项目的基础上维护
keras
配置,例如,一个项目更喜欢
theano
后端,另一个项目更喜欢
tensorflow
后端。作为奖励,我想与其他开发人员相对无缝地共享此配置

以下是一些想法:

  • keras配置能否由虚拟环境管理/在虚拟环境中管理
  • 我是否应该使用
    dotenv
    autoenv
    之类的工具来管理一些共享环境配置(通过
    KERAS\u BACKEND
    环境变量)
  • 在使用
    $HOME
    中的版本之前,是否应更新keras以在工作树中查找
    .keras/keras.json
    文件
  • keras配置能否由虚拟环境管理/在虚拟环境中管理
  • 基本配置参数(如后端、浮点精度)在
    $KERAS_HOME/KERAS.json
    文件中管理。您可以为每个Anaconda/虚拟环境创建一个
    keras.json
    ,并设置
    keras\u HOME
    以在加载时指向特定文件

    或者,可以在运行时通过Keras后端设置这些变量,这将覆盖配置文件中的值:

    from keras import backend as K
    K.set_floatx('float16')
    
    根据Keras后端,还可以配置其他参数。例如,使用
    tensorflow
    后端,可能需要配置
    tf.ConfigProto
    。一种实用的方法是在运行时执行,如:

    import os 
    if os.environ['KERAS_BACKEND'] == 'tensorflow':
        import tensorflow as tf
        from keras.backend.tensorflow_backend import set_session
        gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.95, allow_growth=True)
        config = tf.ConfigProto(gpu_options=gpu_options)
        set_session(tf.Session(config=config))
    
    有关可以配置的内容,请参阅

  • 我应该使用类似于
    dotenv
    autoenv
    的工具来管理一些共享资源吗 环境配置(通过
    KERAS\u后端
    environment
    变量)
  • 这绝对不是必须的,可以使用Keras中可用的
    os.environ
    和get/set方法来修改变量

  • 在使用
    $HOME
    中的版本之前,是否应更新keras以在工作树中查找
    .keras/keras.json
    文件
  • 通过更改
    keras_HOME
    env变量或启动应用程序,可以指向
    keras.json
    config文件的自定义位置,如:

    env KERAS_HOME=<path to custom folder containing keras.json> python keras_app.py
    
    env KERAS_HOME=python KERAS_app.py
    
    KERAS_HOME='./path/to/dir/containing/KERAS.json'
    还是
    KERAS_HOME='./path/to/KERAS.json'
    ?设置
    K.set_……()
    是否会通过子模块中的所有后续keras导入传播?指向包含keras.json的自定义文件夹的路径(我更正了响应,感谢您指出)。嗯,这将仅从2.1.7开始提供,以下是PR: