模型可视化错误:未定义“文件”

时间:2016-09-19 08:42:16

标签: visualization keras

我正在尝试使用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 个答案:

答案 0 :(得分:1)

以你的模型为例。

导入并定义您的模型。

@SpringBootApplication
public class Application {

public static void main(String[] args) {

    ConfigurableApplicationContext applicationContext = new SpringApplicationBuilder(Application.class)
            .properties(
                    "spring.config.name:patient-api.application,application",
                    "spring.config.location:classpath:/,file:${catalina.home}/conf/")
            .build().run(args);
}

}

在绘制模型之前,请确保您已经安装了库: 安装pydot,

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'))  

和graphviz,

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

然后,导入必要的库并调用lib。绘制你的模型。

sudo apt-get install graphviz