У вас нет соответствующего кода в v2, или tf.keras.layers.Input () может быть тем. tf.placeholder - это API низкого уровня. Это было использовано в стиле «Определить и запустить». Вы определяете модель с помощью tf.placeholder. В версии 2 вы должны писать в стиле «Определить при запуске».
См. Фрагмент из Быстрый старт TensorFlow 2 для экспертов .
class MyModel(Model):
def __init__(self):
super(MyModel, self).__init__()
self.conv1 = Conv2D(32, 3, activation='relu')
self.flatten = Flatten()
self.d1 = Dense(128, activation='relu')
self.d2 = Dense(10)
def call(self, x):
x = self.conv1(x)
x = self.flatten(x)
x = self.d1(x)
return self.d2(x)
# Create an instance of the model
model = MyModel()
Также Смотрите фрагмент из Effective TensorFlow 2 . Эти классы наследуются от tf.keras.Model.
class DynamicRNN(tf.keras.Model):
def __init__(self, rnn_cell):
super(DynamicRNN, self).__init__(self)
self.cell = rnn_cell
def call(self, input_data):
# [batch, time, features] -> [time, batch, features]
input_data = tf.transpose(input_data, [1, 0, 2])
outputs = tf.TensorArray(tf.float32, input_data.shape[0])
state = self.cell.zero_state(input_data.shape[1], dtype=tf.float32)
for i in tf.range(input_data.shape[0]):
output, state = self.cell(input_data[i], state)
outputs = outputs.write(i, output)
return tf.transpose(outputs.stack(), [1, 0, 2]), state
Вы также можете написать свою модель с помощью keras api.
import tensorflow as tf
x = tf.keras.layers.Input(input_shape)
h = tf.keras.layers.Conv2D(64, (3, 3), padding='SAME')(x)
h = tf.keras.layers.ReLU()(h)
h = tf.keras.layers.Conv2D(64, (3, 3), padding='SAME')(h)
h = tf.keras.layers.ReLU()(h)
h = tf.keras.layers.Conv2D(64, (3, 3), padding='SAME')(h)
h = tf.keras.layers.ReLU()(h)
h = tf.keras.layers.Flatten()(h)
y = tf.keras.layers.Dense(10)(h)
model = tf.keras.Model(x, y)
==== EDITED ====
support_set = tf.placeholder(tf.float32, [None, None, img_height, img_width, channels])
query_set = tf.placeholder(tf.float32, [None, None, img_height, img_width, channels])
можно заменить на
import tf
support_set = tf.keras.layers.Input(shape=[None, img_height, img_width, channels])
query_set = tf.keras.layers.Input(shape=[None, img_height, img_width, channels])
, где для ввода не требуется явный размер пакета. Вы можете найти больше информации на https://www.tensorflow.org/guide/keras/functional