新
1,
nb_classes=10000 train_labels=to_categorical(train_labels,num_classes=nb_classes)#注意这里的nb——classes 是来自train_label.shape[1],num_class,对于第二个testlabel必须指定,否则会出现imcompable 【none,9927】 imcompable [none,10000]错误,因为第二个的test得出的shape1跟train不一样,这样evaluate的时候就会报错。 test_labels=to_categorical(test_labels,num_classes=nb_classes) print(test_labels.shape)
这个是随手学习的笔记,里面记录了在用这本教材中发现的问题和遇到的问题以及解决方法
目前学习使用的是联想的笔记本,并不需要按照书上说的ec2的平台,这点是要注意的,主要是ec2要是按照正常学习进度花费不小,这点是要注意
1,from keras import optimizer,使用optimizer.RMSprop报错,原因不太清楚,估计使用pycharm 内部包含了这个对应的function,所以引入要更改以下
from tensorflow import keras
from keras import optimizer,里面的英文可能有错误,请使用语言提示功能
2,137 code 中断错误,内存不足,经过查询这个应该是默认使用10%的内存,如果是8gb的话,使用model.evaluate 时候会保存137中断,无法获得返回值
实际是因为内存不足,增加swap就可以了,具体方法自行google
3,在model_build()里面使用metrics=mae同时使用history.history['val_mean_absolute_error']报错,key error 找不到 val_mean_absolute_error,因为metrics不能用mae,新建一个model_build2(),更改里面的metrics=‘mean_absolute_error’
4,书上有一句代码引入to_categorical 如下
from keras.utils import to_categorical,这句会发现引入不进来,stackoverflow上面说是要改成 from tensorflow.keras.utils import to_categorical,实际上会发现还是不行,因为书上写错了,实际这个在keras.utils.n_utils里面,改从这里引入就可以了
5,报错
WARNING:tensorflow:Your input ran out of data; interrupting training.
尽管报这个错误,代码仍然执行到最后,但是获取到的数据库是有问题的,就是只有第一轮的数据,后面的都没有,修改里面的flow_from_directory里面的batch_size 将书中的32改成1就行了
能够正确获得数据库,这个问题有可能是由于我使用的是笔记本的原因,如果是用正规的台式机可能没有这个问题
另外这个batch_size不要设置的过低,容易影响数据拟合
6,代码错误,from keras.applications import VGG16 错误,提示没有这个
原因是application 里面的确实没这个,实际应该是采用这个引入
from keras.applications.vgg16 import VGG16
但是还是有错,提示ssl certificate 错误,这个再添加如下两行代码在最前面
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
7,代码错误,在第六章里面对文字进行深度学习中,里面有一句代码
results=np.zeros(shape=(len(samples),max_length,max(token_index.values())+1))
这句代码报错,dict里面没有value这个属性,原因是不知道哪里代码写错了,经过简化就没问题了,比如我这里是令
p=max(token_index.value())
将p带入,尤其是这种括号特别多的,这种方法比较好
9,mnist 原始是三维数据,降维,对应 svc方法
nsamples,nx,ny=train_images.shape v2_train_images=train_images.reshape((nsamples,nx*ny)) model.fit(v2_train_images,train_labels)
8,Resolve ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.
two solutions :
1、 add max _iter( default 1000 ), the code is as follows
clfs = LinearSVC(max_iter=5000)
2、 cancel the default value and change it to dual=False, the code is as follows
clfs = LinearSVC(dual=False)