推 yiefaung: "QQ_%d"%layer_num layer_num+=1 11/21 02:50
你意思是model 先建完 再 rename嗎?
input = Input(shape = (3,))
y = Dense(3)(input)
y = Dense(3)(y)
model = Model(input, y)
num = 0
for x in model.layers:
x.name = "QQ_%d" % num
num += 1
如果不是的話,如何把你的指令塞到layer裡呢?
如果是的話,跟我要的有些出入
我是想要在建每一個layer時就會"若命名相同則自己index"
因為我要自動index重複命名的是如 #1RyoAJbC (Python) 的model
input = Input(shape = (None, None, 3))
y = block_1(input)
y_1 = block_2(y)
y_2 = block_3(y)
y_3 = Concatenate()([y_1, y_2])
model = Model(input, y_3)
而想要讓y到y_1所有經過的layer的命名都是"QQ"
謝謝~~
※ 編輯: znmkhxrw (210.242.52.37), 11/21/2018 09:56:24
推 illegalplan: 直接override Model 在init裡面檢查同名? 11/21 14:01
推 germun: 自己寫一個get_name()函式做調整 11/21 14:10
→ germun: 就可以直接使用name=get_name('QQ') 11/21 14:11
→ germun: get_name()裡面你可以自己判斷, 用個global set或list做記 11/21 14:12
→ germun: 錄檢查有沒有重覆或做counting就好了 11/21 14:13
→ germun: 不太建議用override, 因為一改版可能很多東西都得改掉 11/21 14:14
!!! g大的意思是 寫一個 get_name("QQ") 的generator嗎??
這樣跟他要幾次就會得到不同的值
※ 編輯: znmkhxrw (220.128.169.29), 11/21/2018 14:19:29
推 Kazimir: 雖然我不知道怎麼從keras處理 但是tf本身是有給名子的啊 11/21 14:33
→ Kazimir: 都是像 input:0 之類的 11/21 14:34
推 germun: 意思是你自己def一個function, 然後return你加上index的 11/21 14:38
→ germun: string當做你的name,加數字方法就像一樓那樣string format 11/21 14:38
推 blackrays: 看要不要改用tensorflow 他會幫你加_0 _1 11/21 14:48
推 germun: tf給的是tensor name, keras本身還有layer name, 不太一樣 11/21 14:57
→ germun: name的處理方法你可以去參考class Layer本身對name處理 11/21 14:58
→ germun: 你會看到keras本身就有K.get_uid()來給name做counting已經 11/21 15:00
→ germun: 幫你解決計數問題了 11/21 15:00
原來g大你的global set是那個意思XDD 完全解決我問題 THX~
cnt = 0
def get_name(name):
global cnt
cnt += 1
return name + "_" + str(cnt)
你有空的話順便幫我看一下 python 板那篇你回的 我有修文做個總結看對不對
500p縫上 感恩~^^
※ 編輯: znmkhxrw (220.128.169.29), 11/21/2018 17:02:27