欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談keras 的抽象后端(from keras import backend as K)

 更新時間:2020年06月16日 11:35:03   作者:Pierce_KK  
這篇文章主要介紹了淺談keras 的抽象后端(from keras import backend as K),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

keras后端簡介:

Keras 是一個模型級庫,為開發(fā)深度學(xué)習(xí)模型提供了高層次的構(gòu)建模塊。它不處理諸如張量乘積和卷積等底層操作,目的也就是盡量不重復(fù)造輪子。

但是底層操作還是需要的, 所以keras 依賴于一個專門的、優(yōu)化的張量操作庫來完成這個操作。

我們可以簡單的認(rèn)為這是 Keras 的「后端引擎」, keras 有三個后端實現(xiàn)可用 、 即: TensorFlow 后端,Theano 后端,CNTK 后端。

如果你需要修改你的后端, 只要將字段 backend 更改為 theano 或 cntk,Keras 將在下次運行 Keras 代碼時使用新的配置。

你也可以定義環(huán)境變量 KERAS_BACKEND,這會覆蓋配置文件中定義的內(nèi)容:

定義的方式如下。

KERAS_BACKEND=tensorflow python -c “from keras import backend” Using
TensorFlow backend.

在 Keras 中,可以加載比 “tensorflow”, “theano” 和 “cntk” 更多的后端, 即可以選擇你自己所定義的后端。

Keras 也可以使用外部后端,這可以通過更改 keras.json 配置文件和 “backend” 設(shè)置來執(zhí)行。

假設(shè)您有一個名為 my_module 的 Python 模塊,您希望將其用作外部后端。keras.json 配置文件將更改如下:

{
“image_data_format”: “channels_last”,
“epsilon”: 1e-07,
“floatx”: “float32”,
“backend”: “my_package.my_module” }

必須驗證外部后端才能使用,有效的后端必須具有以下函數(shù):placeholder, variable and function.

如果由于缺少必需的條目而導(dǎo)致外部后端無效,則會記錄錯誤,通知缺少哪些條目。

下面我們來看一下 keras 的 json 文件中其他的一些更加詳細(xì)的配置;

The keras.json 配置文件包含以下設(shè)置, 你可以通過編輯 $ HOME/.keras/keras.json 來更改這些設(shè)置。

{
“image_data_format”: “channels_last”,
“epsilon”: 1e-07,
“floatx”: “float32”,
“backend”: “tensorflow” }

第一個參數(shù) image_data_format 的可選參數(shù)為 : “channels_last” 或者 “channels_first”,當(dāng)然, 從名字中你就可以看出他們的作用是什么;

如果是 tensorflow作為后端, 那么就應(yīng)當(dāng)是channel last , 也就是輸入的tensor的shape (height, width, channels);

如果是 theano, 那么就是 channel first。

epsilon: 浮點數(shù),用于避免在某些操作中被零除的數(shù)字模糊常量。

floatx: 字符串,“float16”, “float32”, 或 “float64”。默認(rèn)浮點精度。

backend: 字符串, “tensorflow”, “theano”, 或 “cntk”。

使用抽象 Keras 后端:

如果你希望你編寫的 Keras 模塊與 Theano (th) 和 TensorFlow (tf) 兼容,則必須通過抽象 Keras 后端 API 來編寫它們。

你可以通過以下方式導(dǎo)入后端模塊:

from keras import backend as K

下面是后端使用的一些介紹:

這段代碼實例化一個輸入占位符。它等價于 tf.placeholder() 或 th.tensor.matrix(), th.tensor.tensor3(), 等等。

inputs = K.placeholder(shape=(2, 4, 5))
inputs = K.placeholder(shape=(None, 4, 5))
inputs = K.placeholder(ndim=3)

也就是說你一旦引用了 keras 的 backed, 那么大多數(shù)你需要的張量操作都可以通過統(tǒng)一的Keras后端接口完成,

而不關(guān)心具體執(zhí)行這些操作的是Theano還是TensorFlow。

下面的代碼實例化一個變量。它等價于 tf.Variable() 或 th.shared()。

import numpy as np
val = np.random.random((3, 4, 5))
var = K.variable(value=val)

var = K.zeros(shape=(3, 4, 5))
var = K.ones(shape=(3, 4, 5))

你需要的大多數(shù)張量操作都可以像在 TensorFlow 或 Theano 中那樣完成:

b = K.random_uniform_variable(shape=(3, 4), low=0, high=1) # 均勻分布
c = K.random_normal_variable(shape=(3, 4), mean=0, scale=1) # 高斯分布
d = K.random_normal_variable(shape=(3, 4), mean=0, scale=1)

以上這篇淺談keras 的抽象后端(from keras import backend as K)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論