keras slice layer 層實(shí)現(xiàn)方式
注意的地方: keras中每層的輸入輸出的tensor是張量, 比如Tensor shape是(N, H, W, C), 對(duì)于tf后臺(tái), channels_last
Define a slice layer using Lamda layer def slice(x, h1, h2, w1, w2): """ Define a tensor slice function """ return x[:, h1:h2, w1:w2, :]
定義完slice function之后,利用lambda layer添加到定義的網(wǎng)絡(luò)中去
# Add slice layer
slice_1 = Lambda(slice, arguments={'h1': 0, 'h2': 6, 'w1': 0, 'w2': 6})(sliced)
# As for tensorfow backend, Lambda doesn't need output shape argument
slice_2 = Lambda(slice, arguments={'h1': 0, 'h2': 6, 'w1': 6, 'w2': 12})(sliced)
補(bǔ)充知識(shí):tensorflow和keras張量切片(slice)
Notes
想將一個(gè)向量
分割成兩部分:
操作大概是:

在 TensorFlow 中,用 tf.slice 實(shí)現(xiàn)張量切片,Keras 中自定義 Lambda 層實(shí)現(xiàn)。
TensorFlow
tf.slice(input_, begin, size, name=None)
input_:tf.tensor,被操作的 tensor
begin:list,各個(gè)維度的開(kāi)始下標(biāo)
size:list,各個(gè)維度上要截多長(zhǎng)
import tensorflow as tf with tf.Session() as sess: a = tf.constant([1, 2, 3, 4, 5]) b = tf.slice(a, [0], [2]) # 第一個(gè)維度從 0 開(kāi)始,截 2 個(gè) c = tf.slice(a, [2], [3]) # 第一個(gè)維度從 2 開(kāi)始,截 3 個(gè) print(a.eval()) print(b.eval()) print(c.eval())
輸出
[1 2 3 4 5]
[1 2]
[3 4 5]
Keras
from keras.layers import Lambda from keras.models import Sequential import numpy as np a = np.array([[1, 2, 3, 4, 5]]) model = Sequential([ Lambda(lambda a: a[:, :2], input_shape=[5]) # 第二維截前 2 個(gè) ]) print(model.predict(a))
輸出
[[1. 2.]]
以上這篇keras slice layer 層實(shí)現(xiàn)方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python OpenCV高斯金字塔與拉普拉斯金字塔的實(shí)現(xiàn)
這篇文章主要介紹了Python OpenCV高斯金字塔與拉普拉斯金字塔的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Python+Selenium實(shí)現(xiàn)無(wú)頭瀏覽器網(wǎng)頁(yè)截圖
這篇文章主要為大家詳細(xì)介紹了Python+Selenium實(shí)現(xiàn)無(wú)頭瀏覽器網(wǎng)頁(yè)截圖的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-03-03
Python中對(duì)對(duì)象列表進(jìn)行排序的多種方式實(shí)現(xiàn)
在軟件開(kāi)發(fā)中,我們經(jīng)常需要對(duì)數(shù)據(jù)進(jìn)行排序以滿足特定的需求,在 Python 中,排序是一個(gè)常見(jiàn)的操作,可以通過(guò)多種方式實(shí)現(xiàn),需要的朋友可以參考下2025-01-01
詳解Python的多線程定時(shí)器threading.Timer
這篇文章主要為大家介紹了Python的多線程定時(shí)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01
Python實(shí)現(xiàn)自動(dòng)化接收與處理手機(jī)驗(yàn)證碼
在移動(dòng)互聯(lián)網(wǎng)時(shí)代,短信驗(yàn)證碼已成為身份驗(yàn)證、賬號(hào)注冊(cè)等環(huán)節(jié)的重要安全手段,本文將介紹如何利用Python實(shí)現(xiàn)驗(yàn)證碼的自動(dòng)接收,識(shí)別與轉(zhuǎn)發(fā),需要的可以參考下2025-03-03
Python 寫(xiě)了個(gè)新型冠狀病毒疫情傳播模擬程序
這篇文章主要介紹了Python 寫(xiě)了個(gè)新型冠狀病毒疫情傳播模擬程序,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02

