2017-10-29 12 views
0

Q 학습을 사용하여 CatPole-v0을 교육하려고합니다.어레이에서 tensorflow 자리 표시 자 먹이기

ValueError: Cannot feed value of shape (128,) for Tensor 'Placeholder_1:0', which has shape '(?, 2)' 

관련 코드는 다음과 같습니다 :

def update_replay_buffer(replay_buffer, state, action, reward, next_state, done, action_dim): 
    # append to buffer 
    experience = (state, action, reward, next_state, done) 
    replay_buffer.append(experience) 
    # Ensure replay_buffer doesn't grow larger than REPLAY_SIZE 
    if len(replay_buffer) > REPLAY_SIZE: 
     replay_buffer.pop(0) 
    return None 

공급 될 수있는 자리

action_in = tf.placeholder("float", [None, action_dim]) 

수 있습니다 나는 다음과 같은 오류를 얻고 경험을 재생 버퍼를 업데이트하려고 할 때 누군가이 오류를 해결하기 위해 action_dim을 사용해야하는 방법을 분명히 했습니까? action_in에 의해

답변

0

하자의 시작은 :

action_in = tf.placeholder("float", [None, action_dim]) 

action_in(None, action_dim)처럼 이외의 아무 모양을 가질 수 있다는 것을 의미한다. 그리고 오류에서 :

ValueError: Cannot feed value of shape (128,) for Tensor 'Placeholder_1:0', which has shape '(?, 2)' 

오류에서 당신의 action_dim2 것 같다. 모양이 (?, 2), 즉 (None, 2) 인 모양을 예상하는 텐서 대신에 모양이 (128,) 인 객체를 놓고있는 것을 쉽게 볼 수 있습니다.

따라서 내가 속이고있는 곳인 feed_dict을 확인해야합니다. 자리 표시 자 action_in의 크기는 넣는 대상과 일치해야합니다. feed_dict.

Can someone clarify how action_dim should be used to resolve this error?

사용자 환경의 작업이 action_dim의 값에서 두 개의 구성 요소가 보인다,하지만 당신은 단지 one 구성 요소를 제공하고, 이것은 당신의 오류 ((128,))에서 추론된다. 이 문제를 해결해야합니다. 희망이 도움이됩니다.