如题,我早先自学的是tf,昨天入了一下keras的坑,没用服务器,用我这个丐版的联想本装了一个基于theano的keras,一开始跑了一个全连接的神经网络,没啥问题。然后又做了一个很小的cnn,(代码如下),能够用 model.summary()输出网络的结构,但是运行起来就会弹出信息框报错:
代码:
import keras
import numpy as np
from keras.models import load_model
input1=keras.layers.Input(shape=(25,))
x=keras.layers.Reshape([5,5,1])(input1)
x1=keras.layers.Conv2D(filters=2,kernel_size=(2,2),strides=(1,1),padding='valid',activation='elu')(x)
x2=keras.layers.MaxPooling2D(pool_size=(2,2),strides=(1,1),padding='valid')(x1)
x3=keras.layers.Conv2D(filters=4,kernel_size=(2,2),strides=(1,1),padding='valid',activation='elu')(x2)
x4=keras.layers.AveragePooling2D(pool_size=(2,2),strides=(1,1),padding='valid')(x3)
x5=keras.layers.Reshape([4*4*2,])(x1)
xx=keras.layers.Dense(1,activation='elu')(x5)
model=keras.models.Model(inputs=input1,outputs=xx)
model.summary()
model.compile(loss='mse', optimizer='sgd')
def data():
data=np.random.randint(0,2,[1,25])
return(data)
def num(data):
data=np.reshape(data,[25])
sum_=0
for i in data:
sum_=sum_+i
if sum_>10:
result=[[1]]
else:
result=[[0]]
return(result)
while True:
for i in range(100):
x=data()
y=num(x)
cost = model.train_on_batch([x], [y])
print(i)
x=data()
y=num(x)
cost = model.evaluate(x, y)
print('loss=',cost)
x=data()
y=num(x)
print('x=',x)
print('y=',y)
Y_pred = model.predict(x)
print(Y_pred)
words=input('continue??\::')
if words=='n':
break
可以输出模型的结构
但是再往下运行,就会弹出信息框报错:
请问各位高手有何高见
我的电脑是xp系统,32位,内存不到1G(老掉牙的耍着玩),装的是python 2.7.15,numpy(1.16.6),scipy(1.2.2),theano(1.0.4),keras(2.3.1)
勿喷,一般都是在服务器上写tf,这台电脑纯属娱乐。。
求教求教。。。