我正在尝试学习Python中的super()函数.
我以为我掌握了它,直到我看到这个例子(2.6)并发现自己卡住了.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "test.py", line 9, in do_something
do_something = classmethod(do_something)
TypeError: unbound method do_something() must be called with B instance as first argument (got nothing instead)
>>>
Run Code Online (Sandbox Code Playgroud)
当我在示例之前读到这一行时,这不是我的预期:
如果我们使用类方法,我们没有一个实例来调用super.幸运的是,对于我们来说,super甚至可以使用类型作为第二个参数.---类型可以直接传递给super,如下所示.
通过说do_something()应该用B的实例调用,这正是Python告诉我的不可能.
我试图通过参考这篇文章来制作一个手写分类器:https : //github.com/priya-dwivedi/Deep-Learning/blob/master/handwriting_recognition/English_Writer_Identification.ipynb。
在拟合模型时,我收到一条错误消息,指出 fir_generator 不希望有任何此类参数!此外,虽然错误本身是一个意外的参数错误,但标记显示为类型错误,我想知道我的管道是否有问题。
这是模型。(我排除了错误之后的所有代码,因为它不应该以任何方式相关。如果你觉得它很重要,你可以参考上面链接中的代码)
Tensorflow 版本 - 1.14 ,Keras 版本 - 2.2.4
from __future__ import division
import numpy as np
import os
import glob
from PIL import Image
from random import *
from tensorflow.keras.utils
import to_categorical
from sklearn.preprocessing
import LabelEncoder
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
%matplotlib inline
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Flatten, Lambda, ELU, Activation, BatchNormalization
from tensorflow.keras.layers import Convolution2D, Cropping2D, ZeroPadding2D, MaxPooling2D
from tensorflow.keras.optimizers import …
Run Code Online (Sandbox Code Playgroud)