inflearn logo
강의

講義

知識共有

プログラマーのための強化学習(著者直講)

cartpole_reinforce.ipynb 에러

530

yunwoo oh

投稿した質問数 1

0

코랩에서 cartpole_reinforce.ipynb 실행시킬때 아래와 같은 에러 발생합니다.

ValueError: Layer "my_model_1" expects 3 input(s), but it received 1 input tensors. Inputs received: [<tf.Tensor 'IteratorGetNext:0' shape=(None, 1, 4) dtype=float32>]

에러나는 소스 위치는 아래 화면에서 "y_pred = self(states, training=True)" 부분에서

에러가 발생됩니다.

    class MyModel(tf.keras.Model):
        def train_step(self, data):
            in_datas, out_actions = data
            states, action_matrix, rewards = in_datas[0], in_datas[1], in_datas[2]

            with tf.GradientTape() as tape:
                y_pred = self(states, training=True)
                action_probs = K.sum(action_matrix*y_pred, axis=-1)
                loss = -K.log(action_probs)*rewards

            trainable_vars = self.trainable_variables
            gradients = tape.gradient(loss, trainable_vars)
            self.optimizer.apply_gradients(zip(gradients, trainable_vars))

 tensorflow 버젼 : 2.9.2 이며, 모델에 3개의 값을 주어야 하는데, 1개만 받아서 그런것 같습니다.

해결 방법 알려 주시기 바랍니다.

감사합니다.

강화학습 인공신경망

回答 2

0

Kim Sunggu

혹시 누군가 동일한 문제를 겪으면 도움이 될까해서 늦은 댓글이지만 작성합니다.

아래는 ubuntu 20.04 , conda , GPU , python 3.8 와 같은 환경에서 작업하였음을 알려드립니다.

  1. 위 에러 메세지는 tensorflow 2.2.0 설치하면 사라지는것을 확인하였습니다.

    1. 공식 빌드는 설치 불가로 생각됩니다.

    2. wheel 사용한 설치 pip install https://github.com/davidenunes/tensorflow-wheels/releases/download/r2.2.cp38.gpu/tensorflow-2.2.0-cp38-cp38-linux_x86_64.whl

  2. 이 경우 numpy 버전 에러가 추가로 발생하게 됩니다.

    1. 아래와 같은 에러가 보이면

       

      AttributeError: module 'numpy' has no attribute 'object'. `np.object` was a deprecated alias for the builtin `object`. To avoid this error in existing code, use `object` by itself. Doing this will not modify any behavior and is safe. The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations

    2. 다음처럼 설치

      1. pip install numpy==1.23.4

         

  3. 종합 결론 > 아래처럼 조치하시면 동작합니다.

    pip install https://github.com/davidenunes/tensorflow-wheels/releases/download/r2.2.cp38.gpu/tensorflow-2.2.0-cp38-cp38-linux_x86_64.whl
    
    pip install numpy==1.23.4
    

0

multicoreit

안녕하세요 Kim Sunggu님 좋은 의견 감사합니다.

0

multicoreit

안녕하세요 yunwoo oh님.

본 강의가 제작된 후 패키지에 많은 업데이트가 있어 오류가 발생하고 있습니다. 그래서 새 소식에 다음과 같은 공지를 올렸습니다. https://www.inflearn.com/course/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EB%A5%BC-%EC%9C%84%ED%95%9C-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5/news

따라해서 조치해 보시고, 문제가 계속 발생하신다면 오류 메시지 전체를 올려주세요.

감사합니다.

딥러닝 코드에 Batch Normalization 적용해보기 질문입니다

0

580

1

딥러닝으로 Regression 문제 적용해보기 (House Price Kaggle 문제) 질문입니다

0

478

1

Binary Classfication 딥러닝 적용해보기 질문입니다

0

366

1

파이토치 device (gpu / cpu) 관련 질문드립니다.

0

711

1

혹시 응용편은 어디서 볼 수 있을까요?

0

471

1

karting asset

0

434

2

using Unity.MLAgents; 오류

0

641

1

Augmentation 질문

1

390

1

DQN 알고리즘 실행 결과

0

357

1

DQN 코드 에러

0

494

1

DQN 질문

0

546

1

개발환경 구축관련 문의 드립니다.

0

230

1

MDP질문

0

207

1

MDP 질문

0

266

1

보상값과 보상함수

0

876

1

MDP 상태가치 함수에서 기대값 관련 질문 드립니다.

0

412

1

Reward 에 대한 질문 드립니다.

1

237

1

ppo에서 exploration을 어떻게 하는지 궁금합니다.

0

881

2

강의 외 질문입니다. Env 내부 action에 대한 질문입니다.

0

301

1

episode중간에 weight나 모델을 저장하고싶습니다.

0

941

2

action을 매 episode마다 출력하기위해서는 어떻게 해야하나요?

0

227

1

MDP 행동가치함수에 대한 문의 입니다.

0

404

1

TypeError: in user code: TypeError: Can not convert a NoneType into a Tensor or Operation.

0

1046

5

cartpole_dqn 중 def train_mini_batch(self,Q):에서 Q[0,0,action]의 0,0의 의미는?

0

201

1