我正在尝试学习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)