2016-09-19 37 views
2

我試圖使用Keras visualization module模型可視化的錯誤:「文件」沒有定義

# Begin a model 
model = Sequential() 
model.add(Convolution2D(4,1,5,input_shape=(1,1,49),init='uniform',weights=None,border_mode='valid')) 
model.add(Activation('tanh')) 
model.add(MaxPooling2D(pool_size=(1, 2))) 
model.add(Flatten()) 
model.add(Dense(600,init='normal')) 
model.add(Activation('tanh')) 
model.add(Dense(2, init='normal')) 
model.add(Activation('softmax')) 
model.summary() 
sgd = SGD(lr=list_lr[i], decay=0.0, momentum=0.1, nesterov=False) 
model.compile(loss='categorical_crossentropy', metrics=['accuracy'],optimizer=sgd) 

# using visualization 
from keras.utils.visualize_util import plot 
plot(model, to_file='/home/wj/DL/model.png') 

model.fit(X_train,train_label, batch_size=list_batch[j], nb_epoch=list_epoch[k],shuffle=False,verbose=2,validation_split=0.2) 

我得到以下錯誤:

Traceback (most recent call last): 
File "6.2.4.cnn.py", line 85, in <module> 
    plot(model, to_file='/home/wj/DL/model.png') 
File "/usr/local/lib/python3.4/dist-packages/keras/utils/visualize_util.py", line 67, in plot dot.write_png(to_file) 
File "/usr/local/lib/python3.4/dist-packages/pydot.py", line 1809, in <lambda> 
    lambda path, f=frmt, prog=self.prog : self.write(path, format=f, prog=prog)) 
File "/usr/local/lib/python3.4/dist-packages/pydot.py", line 1895, in write dot_fd = file(path, "w+b") 
    NameError: name 'file' is not defined 

我在做什麼錯?

回答

1

以您的模型爲例。

導入並定義您的模型。

from keras.models import Sequential 
from keras.layers import Dense, Activation, Convolution2D, MaxPooling2D,Flatten 

model = Sequential() 
model.add(Convolution2D(4,1,5,input_shape=(1,1,49),init='uniform',weights=None,border_mode='valid')) 
model.add(Activation('tanh')) 
model.add(MaxPooling2D(pool_size=(1, 2))) 
model.add(Flatten()) 
model.add(Dense(600,init='normal')) 
model.add(Activation('tanh')) 
model.add(Dense(2, init='normal')) 
model.add(Activation('softmax')) 

繪製模型之前,請確保你已經安裝的庫: 安裝pydot,

pip install git+https://github.com/nlhepler/pydot.git 

和Graphviz的,

sudo apt-get install graphviz 

然後,導入所需的庫並調用LIB 。繪製你的模型。

from IPython.display import Image, display, SVG 
from keras.utils.visualize_util import model_to_dot 

# Show the model in ipython notebook 
figure = SVG(model_to_dot(model, show_shapes=True).create(prog='dot', format='svg')) 
display(figure) 

# Save the model as png file 
from keras.utils.visualize_util import plot 
plot(model, to_file='model.png', show_shapes=True)