TensorFlow를 사용하는 스타일 전송 알고리즘에서 콘텐츠 및 스타일 필터를 교육하는 방식 (예 : in this paper)을 이해하는 데 문제가 있습니다. 링크 된 종이에 알고리즘의 몇 가지 구현을 살펴 보았습니다. 그러나이 단계에 대한 처리 방법은 매우 불만 스럽습니다. 이를 위해 미리 훈련 된 모델을 사용하지 않고 순진한 버전을 구현하는 것이 도움이 될 것이라고 생각했습니다. 관련된 단계의 나의 이해는 다음과 같습니다 하나의 이미지에TensorFlow의 스타일 이전
- 기차 CNN과는 백색 잡음 이미지에서 훈련 네트워크, 피드를 사용
- (논문에서 그들은 사전 훈련 VGG 네트워크를 사용). 입력 이미지를 업데이트하여 최소화 된 새로운 손실 함수를 정의합니다 (이미지가 '페인트'되는 방식입니다). '컨텐츠'는 따라서 (백색 잡음) 화상
을 훈련 모델의 전환 층 사이의 거리를 최소화하고, 그 입력에 기인하여 유도되는, 구현되어야 무언가 같은
import TensorFlow as tf
x_in = tf.placeholder(tf.float32, shape=[None, num_pixels], name='x')
y_ = tf.placeholder(tf.float32, shape=[None, num_pixels], name='y')
...
diff = y_-y_out
loss = tf.reduce_sum(tf.abs(diff)) # minimizing 'pixel difference'
train_step = tf.train.AdamOptimizer(1e-4).minimize(loss)
# training model
for i in range(NUM_TRAINING_STEPS):
_, loss_val = sess.run([train_step, loss],
feed_dict={x_in: input_image, y_: input_image})
모델을 연습 한 후에 화이트 노이즈 이미지를 생성 할 수는 있지만 훈련 된 모델을 사용하여 입력 이미지를 업데이트하려면 어떻게해야합니까? 내 의심은 내가 x_in
유형의 tf.Variable
이고 훈련 된 모델에서 가중치와 편향을로드하는 두 번째 네트워크를 만들어야한다는 것이지만이 세부 사항은 나를 벗어난다.