2016-09-19 55 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)