Pythonの勉強の途中で出会ったいろいろな間違い

6463 ワード

エンコーディング
エラー:AttributeError:'float'object has no attribute'decode'ソース:jieba.lcut(x)修正:jieba.lcut(str(x))
LSTM出力問題
エラー:ValueError:Input 0 is incompatible with layer lstm_2:expected ndim=3,found ndim=2ソース:
model.add(LSTM(units=64, activation='tanh', inner_activation='hard_sigmoid'))
model.add(Dropout(0.5))
model.add(LSTM(units=64, activation='tanh'))
model.add(Dense(3, activation='softmax'))

修正:最後のLSTMを除いてreturn_を追加sequences=True
model.add(LSTM(units=64, activation='tanh', inner_activation='hard_sigmoid',return_sequences=True))
model.add(Dropout(0.5))
model.add(LSTM(units=64, activation='tanh'))
model.add(Dense(3, activation='softmax'))

理由:
  • 入力shape
  • (samples,timesteps,input_dim)のような3 Dテンソル
  • 出力shape
  • return_sequences=True:戻り形(samples,timesteps,output_dim)の3 Dテンソル
  • それ以外の場合、(samples,output_dim)のような2 Dテンソル
  • が戻る.

    graphvizインストールの問題
  • エラー:pydot failed to call GraphViz.Please install GraphViz (https://www.graphviz.org/) and ensure that its executables are in the $PATH.
  • ソース:私のコンピュータシステムはdeepin 15です.9.3 pyplotを使用してkerasのSequentialモデル構造を可視化するため、graphviz
  • をインストールする必要があります.
  • 解決:端末にsudo apt install graphviz
  • を入力
    vscodeにおける現在のパスと相対パスの問題
  • 質問:FileNotFoundError:[Errno 2]File b'./data/neg.csv’ does not exist: b’./data/neg.csv’
  • の場合:ファイルが存在するフォルダ:/home/zmh/documents/learn/python/path 1/fatherPath
  • fatherPath
  • data
  • neg.csv
  • pos.csv

  • LSTM
  • lstm.pyは、このファイルで相対パス'./を通常通り使用します.data/neg.csv’は対応するファイルにアクセスできますが、いくら試しても間違っていて、vscodeで開いている1級ディレクトリを出力するテストをしました.すべての相対ディレクトリはvscodeオープンファイル/home/zmh/documents/learn/pythonに対する
  • です.


    import os
    cur_path = os.getcwd()
    print(cur_path)
    #   :/home/zmh/Documents/learn/python
    

    pandas csvファイルの読み込み
  • エラー:pandas.errors.ParserError: Error tokenizing data. C error: Expected 1 fields in line 911,saw 2.
  • ソース:
  • pos = pd.read_csv(pos_path,header=None,index_col=None)
    
  • 解決:errorの追加bad_lines=False
  • pos = pd.read_csv(pos_path,header=None,index_col=None,error_bad_lines=False)