반응형
나는 tensorflow를 가지고 놀면서 다음 코드에 문제가 발생했습니다.
def _init_parameters(self, input_data, labels):
# the input shape is (batch_size, input_size)
input_size = tf.shape(input_data)[1]
# labels in one-hot format have shape (batch_size, num_classes)
num_classes = tf.shape(labels)[1]
stddev = 1.0 / tf.cast(input_size, tf.float32)
w_shape = tf.pack([input_size, num_classes], 'w-shape')
normal_dist = tf.truncated_normal(w_shape, stddev=stddev, name='normaldist')
self.w = tf.Variable(normal_dist, name='weights')
이 스크립트를 호출하는 더 큰 스크립트에서 실행할 때 다음 오류가 발생합니다.
ValueError: initial_value must have a shape specified: Tensor("normaldist:0", shape=TensorShape([Dimension(None), Dimension(None)]), dtype=float32)
대화 형 셸에서 프로세스를 복제하려고했습니다. 실제로 normal_dist
의 크기는 지정되지 않았지만 제공된 값이 존재합니다.
In [70]: input_size.eval()
Out[70]: 4
In [71]: num_classes.eval()
Out[71]: 3
In [72]: w_shape.eval()
Out[72]: array([4, 3], dtype=int32)
In [73]: normal_dist.eval()
Out[73]:
array([[-0.27035281, -0.223277 , 0.14694688],
[-0.16527176, 0.02180306, 0.00807841],
[ 0.22624688, 0.36425814, -0.03099642],
[ 0.25575709, -0.02765726, -0.26169327]], dtype=float32)
In [78]: normal_dist.get_shape()
Out[78]: TensorShape([Dimension(None), Dimension(None)])
이것은 이상합니다. Tensorflow는 벡터를 생성하지만 그 모양을 말할 수 없습니다. 내가 뭘 잘못하고 있니?
해결 방법
코드에서 normal_dist
에는 부분적으로 정의 된 정적 모양이 있습니다. w_shape
는 계산 된 값이기 때문입니다. (TensorFlow는 때때로
이러한 계산 된 값은 그래프 생성시,하지만 tf.pack
에서 멈 춥니 다.) 모양을 추론합니다. TensorShape ([Dimension (None), Dimension (None)])
, 이는 w_shape
가 길이가 2 인 벡터이므로 결과 normal_dist
가 2가되어야한다는 것을 알고 있기 때문에 "행과 열 수가 알 수없는 행렬"을 의미합니다. 차원.
이를 처리 할 수있는 두 가지 옵션이 있습니다. Ishamael이 제안한대로 정적 모양을 설정할 수 있지만이를 위해서는 그래프 생성시 모양을 알아야합니다. 예를 들어 다음이 작동 할 수 있습니다.
normal_dist.set_shape([input_data.get_shape()[1], labels.get_shape()[1]])
참조 페이지 https://stackoverflow.com/questions/34079787
반응형
'파이썬' 카테고리의 다른 글
파이썬 Permanently add a directory to PYTHONPATH? (0) | 2020.11.12 |
---|---|
파이썬 다른 열의 값을 추가하여 Panda 데이터 프레임에 새 열을 만듭니다. (0) | 2020.11.12 |
파이썬 Pandas DataFrame에 헤더 행을 추가하는 방법 (0) | 2020.11.12 |
파이썬 How do I install Keras and Theano in Anaconda Python on Windows? (0) | 2020.11.12 |
파이썬 How to round a number to significant figures in Python (0) | 2020.11.12 |
댓글