0

케 라스 모델 내에서 tensorflow 연산을 시도하고 있으며 메커니즘과 람다 레이어가 tf tensors에 대해하는 일에 대해 매우 혼란 스럽습니다.keras 모델에서 tf 연산을 사용하는 방법

a = keras.layers.Input(shape=[1, 2], dtype='float', name='a') 
s= keras.layers.Lambda(lambda x: tf.transpose(tf.transpose(x)))(a) 
model = keras.models.Model(inputs=a, outputs=s) 

을하지만이 작동하지 않습니다 :

그래서이 작품

a = keras.layers.Input(shape=[1, 2], dtype='float', name='a') 
s = tf.transpose(tf.transpose(a)) 
s = keras.layers.Lambda(lambda x: x)(s) 
model = keras.models.Model(inputs=a, outputs=s) 

을하며 말한다 :

AttributeError: 'Tensor' object has no attribute '_keras_history' 

그래서 내 TF 운영을 포장하는 것이 필요하다 층?

질문 2 (이전에 나온 이유는 무엇입니까?) : 케라에서 매트릭스 곱셈을 수행하기 위해 맞춤 레이어를 사용해야합니까?

감사합니다.

답변

1

질문 1 : 예, keras 모델에 tensorflow 작업에 포함되지 않은 특정 함수/변수가 필요하기 때문에 레이어에 tf 작업을 래핑 할 필요가 있습니다. 이 경우 _keras_history은 op를 레이어로 묶어서 만 생성되는 속성입니다.

질문 2 : 케라 Dense 레이어를 사용하여 생각한 행렬 곱셈은 use_bias=False입니까? 무게 벡터에 상수를 사용하려면 kernel_initializer={constant}trainable=False을 설정할 수 있습니다.

관련 문제