-
글쓴이글
-
2021년 5월 12일 16:40 #9313
박진우참가자import tensorflow as tf
model = tf.keras.models.Sequential ([
tf.keras.layers.Embedding(len(tokenizer.word_index)+1,16),
tf.keras.layers.LSTM(50),
tf.keras.layers.Dense(31,activation='softmax')
])model.compile(loss = 'categorical_crossentropy', optimizer = 'adam' , metrics =['accuracy'])
model.fit(trainX, trainY, batch_size=64, epochs =30 , verbose =2)
아직 짬이 안되나봅니다....
-----------------------------------------------------------------------------
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-42-a48b837b0672> in <module>()
9 model.compile(loss = 'categorical_crossentropy', optimizer = 'adam' , metrics =['accuracy'])
10
---> 11 model.fit(trainX,trainY,batch_size=64, epochs =30 , verbose =2)2 frames
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/data_adapter.py in select_data_adapter(x, y)
962 "Failed to find data adapter that can handle "
963 "input: {}, {}".format(
--> 964 _type_name(x), _type_name(y)))
965 elif len(adapter_cls) > 1:
966 raise RuntimeError(ValueError: Failed to find data adapter that can handle input: <class 'numpy.ndarray'>, (<class 'list'> containing values of types {"<class 'int'>"})
이런오류가뜨는데 어디서 잘못된거고 옳은 예시좀 보여주실수있나요?
강의나온데까지는 오류가없습니다
++수정 실행은 되지만 정확도가 49~53사이에서 증가하질않습니다. 혹시 어떻게 해야할까요..? 강의에서 말씀하긴 92퍼는 근처에도못가겠습니다...
2021년 5월 12일 17:42 #9318
codingapple키 마스터마지막 출력 레이어가 이상해보입니다
우리가 학습용으로 집어넣은 데이터는 x는 글자들, y는 0또는 1입니다. 나쁜댓글인지 아닌지를 0과 1로 판정해주는 모델이니까요
그래서 마지막 레이어는 숫자 31개 말고 숫자하나만 출력하는 레이어가 되면 됩니다
2022년 2월 13일 00:23 #27144
Phillip참가자1. 원인:
trainX의 type을 보시면 <class 'numpy.ndarray'> 로 나올 것입니다.
X = pad_sequences(wkchar_list_num_index_seq, maxlen=100) 처리 결과로
원래는 list 타입에서 <class 'numpy.ndarray'>가 되었습니다.
2. 해결 : list형태로 변형하면 됩니다
X = X.tolist() 문장을
trainX, valX, trainY, valY = train_test_split(X, Y, test_size = 0.2, random_state=42) 수행 전에
실행하여 list로 전환하면 됩니다.
3. 위와 같이 실행하면 ndarray 오류는 넘어갈 겁니다.
4. 코딩을 보면 tf.keras.layers.Embedding(len(tokenizer.word_index)+1,16) 도
수행 도중 중단될 확률이 보입니다. 만약 오류가 나면 len(tokenizer.word_index)+1를
5000정도 주시면 완주 실행되리라 봅니다.
감사합니다.
-
글쓴이글
- 답변은 로그인 후 가능합니다.