如果我创建这样的函数:
def mdl(input_shape):
model = Sequential()
model.add(Conv2D(depth=64, kernel_size=(3, 3), input_shape=input_shape, activation='relu'))
model.add(Dense(32), activation='relu')
model.add(Dropout(0.3))
model.add(Dense(32), activation='relu')
model.add(Dropout(0.3))
model.add(Dense(16), activation='relu')
model.add(Dropout(0.3))
model.add(Dense(1))
return model
并且我非常关心良好的编程实践,我应该如何指示函数的返回类型?
可以通过以下方式指示
mdl
函数的返回类型:
keras.models.Sequential
或
tf.keras.models.Sequential
,具体取决于导入 Keras 的方式。以下是使用类型提示的完整函数定义:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, Dense, Dropout
from tensorflow.keras import Model # 或 'from keras.models import Model'
def mdl(input_shape: tuple) -> Model:
"""
创建一个 Keras 模型。
Args:
input_shape: 输入数据的形状。
Returns:
Keras 模型。
"""
model = Sequential()
model.add(Conv2D(depth=64, kernel_size=(3, 3), input_shape=input_shape, activation='relu'))
model.add(Dense(32), activation='relu')
model.add(Dropout(0.3))
model.add(Dense(32), activation='relu')
model.add(Dropout(0.3))
model.add(Dense(16), activation='relu')
model.add(Dropout(0.3))
model.add(Dense(1))
return model
在这里,我们进行以下操作:
- 我们导入必要的 Keras 类。
- 我们使用
-> Model
语法指定返回类型为
Model
。
- 我们还包括一个文档字符串来解释函数的作用。
这使得的代码更易于理解和维护,并且 IDE 可以使用这些类型提示来提供更好的代码完成和错误检测。
标签:python,keras,python-typing From: 62778635