Arrays Keras:UnboundLocalError:局部变量';数组';作业前参考,如何解决
我得到以下错误:Arrays Keras:UnboundLocalError:局部变量';数组';作业前参考,如何解决,arrays,pandas,tensorflow,deep-learning,keras,Arrays,Pandas,Tensorflow,Deep Learning,Keras,我得到以下错误: import pandas as pd import numpy as np df_train=pd.read_csv('train_titanic.csv') df_test=pd.read_csv('test_titanic.csv') df_train.drop(['PassengerId','Name','Ticket','Cabin'],inplace=True,axis=1) df_test.drop(['PassengerId','Name','Ticket'
import pandas as pd
import numpy as np
df_train=pd.read_csv('train_titanic.csv')
df_test=pd.read_csv('test_titanic.csv')
df_train.drop(['PassengerId','Name','Ticket','Cabin'],inplace=True,axis=1)
df_test.drop(['PassengerId','Name','Ticket','Cabin'],inplace=True,axis=1)
df_train=pd.concat([df_train,pd.get_dummies(df_train.Sex),pd.get_dummies(df_train.Pclass),pd.get_dummies(df_train.Embarked)],axis=1)
df_test=pd.concat([df_test,pd.get_dummies(df_test.Sex),pd.get_dummies(df_test.Pclass),pd.get_dummies(df_test.Embarked)],axis=1)
df_train.drop(['Sex','Pclass','Embarked','male',3,'S'],axis=1,inplace=True)
df_test.drop(['Sex','Pclass','Embarked','male',3,'S'],axis=1,inplace=True)
df_train.fillna(df_train.mean(),inplace=True)
df_test.fillna(df_test.mean(),inplace=True)
y_train=df_train.iloc[:,0]
X_train=df_train.iloc[:,1:]
def make_model():
from keras.models import Sequential
from keras.layers import Dense
model=Sequential()
model.add(Dense(10,activation='relu',input_shape=(9,)))
model.add((Dense(5,activation='relu')))
model.add((Dense(1,activation='sigmoid')))
model.compile('adam',loss='binary_crossentropy',metrics=['accuracy'])
return model
model=make_model()
model.fit(X_train,y_train,batch_size=32,epochs=10)
前面的问题都没有任何帮助。是虫子吗?我怎样才能避开它?在这个错误中它指的是哪个数组?我不得不改变这个
~\Anaconda3\lib\site-packages\keras\models.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, **kwargs)
891 class_weight=class_weight,
892 sample_weight=sample_weight,
--> 893 initial_epoch=initial_epoch)
894
895 def evaluate(self, x, y, batch_size=32, verbose=1,
~\Anaconda3\lib\site-packages\keras\engine\training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, **kwargs)
1553 class_weight=class_weight,
1554 check_batch_axis=False,
-> 1555 batch_size=batch_size)
1556 # Prepare validation data.
1557 do_validation = False
~\Anaconda3\lib\site-packages\keras\engine\training.py in _standardize_user_data(self, x, y, sample_weight, class_weight, check_batch_axis, batch_size)
1407 self._feed_input_shapes,
1408 check_batch_axis=False,
-> 1409 exception_prefix='input')
1410 y = _standardize_input_data(y, self._feed_output_names,
1411 output_shapes,
~\Anaconda3\lib\site-packages\keras\engine\training.py in _standardize_input_data(data, names, shapes, check_batch_axis, exception_prefix)
124 # Make arrays at least 2D.
125 for i in range(len(names)):
--> 126 array = arrays[i]
127 if len(array.shape) == 1:
128 array = np.expand_dims(array, 1)
UnboundLocalError: local variable 'arrays' referenced before assignment
对此
model.fit(X_train,y_train,batch_size=32,epochs=10)
我在一个带有Ubuntu:16.04图像的docker容器上也犯了同样的错误。 升级pip时会出现错误
model.fit(X_train.values,y_train.values,batch_size=32,epochs=10)
当我评论这一行时,tensorflow和keras运行得很好:D
这是我的文件
RUN pip install --upgrade pip
您需要传递一个numpy数组。在第一种情况下,它是一个数据帧,而在第二种情况下,它是一个numpy数组。好的。但是在SkLearn中,我们可以发送其中任何一个ryt?
FROM ubuntu:16.04
RUN \
apt-get update && \
apt-get install -y python python-dev python-pip python-virtualenv && \
rm -rf /var/lib/apt/lists/*
RUN mkdir /src
WORKDIR /src
# RUN pip install --upgrade pip
RUN pip install Werkzeug Flask numpy Keras gevent pillow h5py tensorflow
ADD requirements.txt ./
RUN pip install -r requirements.txt