回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我和Keras有问题。基本上,当我试图用conv2d层拟合模型时,会出现以下错误“Segmentation fault(core dumped)”。在</p>
<p>我的代码在CPU上工作。它也可以在没有任何conv2d层的情况下工作(即使对于我的用例来说它是无效的)。我已经安装了cuda、cudnn和tensorflow。我试过重新安装keras和tensorflow。在</p>
<p>代码:</p>
<pre><code>def model_build():
model = Sequential()
model.add(Conv2D(input_shape = (env_size()[0], env_size()[1], 1), filters=4, kernel_size=(3,3), strides=1, activation=swisher))
model.add(Conv2D(filters=4, kernel_size=(5,5), strides=1, activation=swisher))
model.add(Conv2D(filters=4, kernel_size=(5,5), strides=1, activation=swisher))
model.add(Conv2D(filters=4, kernel_size=(5,5), strides=1, activation=swisher))
model.add(Flatten())
model.add(Dense(128, activation='softmax'))
model.add(Dense(4, activation='softmax'))
return model
if __name__ == '__main__':
y = model_build()
y.compile(loss = "mean_squared_error", optimizer = 'adam')
y.fit(x=env(), y = np.array([[0,0,0,0]])
</code></pre>
<p>错误:</p>
^{pr2}$
<p>编辑:</p>
<p>独立的例子。在</p>
<pre><code>import numpy as np
import keras
model = keras.models.Sequential() #Sequential model type.
model.add(keras.layers.Conv2D(filters=1, kernel_size=(3,3), strides = 1, activation="sigmoid")) #Convolutional layer.
model.add(keras.layers.Flatten()) #Flatten layer.
model.add(keras.layers.Dense(4)) #Dense layer of 4 units.
model.compile(loss='mean_squared_error', optimizer='adam') #compile model.
y = np.random.rand(1,4) #Random expected output
x = np.random.rand(1, 38, 21, 1) # Random input.
model.fit(x, y) #And fit...
</code></pre>
<p>编辑2:</p>
<p>Keras版本:“v2.1.6-tf”</p>
<p>Tensorflow GPU版本:“v1.12”</p>
<p>Python版本:“v3.5.2”</p>
<p>CUDA版本:“v9.0.176”</p>
<p>CUDNN版本:'v7.2.1.38-1+cuda9.0</p>
<p>Ubuntu版本:“v16.04”</p>