搭建tensorflow网络模型时,运行错误 求解答

源代码:

import tensorflow as tf


from tensorflow import keras


 


def Concat_net(x1,x2,model):


    input_1 = model.predict(x1)


    input_2 = model.predict(x2)   


    concat  = tf.keras.layers.concatenate([input_1,input_2])


    fc7     = tf.keras.layers.Dense(4096,activation='relu')(concat)


    fc8     = tf.keras.layers.Dense(4096,activation='relu')(fc7)


    fc9     = tf.keras.layers.Dense(8,activation='softmax')(fc8)


    C       = fc9


    return C


 


def final_net(inputshape,model):


    inputs_1  = tf.keras.layers.Input(shape=inputshape)


    inputs_2  = tf.keras.layers.Input(shape=inputshape)


    outputs   = Concat_net(inputs_1, inputs_2, model)


    model     = tf.keras.Model([inputs_1,inputs_2],outputs,name='concat_NET')


    return model


 


Alex_net = keras.Sequential([


    keras.layers.Conv2D(96,(11,11),activation='relu',strides=(4,4)),


    keras.layers.MaxPooling2D((3,3),strides=(2,2)),


    keras.layers.Conv2D(256,(5,5),activation='relu',padding='same'),


    keras.layers.MaxPooling2D((3,3),strides=(2,2)),


    keras.layers.Conv2D(384,(3,3),activation='relu',padding='same'),


    keras.layers.Conv2D(384,(3,3),activation='relu',padding='same'),


    keras.layers.Conv2D(256,(3,3),activation='relu',padding='same'),


    keras.layers.MaxPooling2D((3,3),strides=(2,2)),


    keras.layers.Dense(4096,activation='relu')


])


inputshape=(96,96,3)


F=final_net(inputshape,Alex_net)


F.summary()


 

错误:

Traceback (most recent call last):
  File "D:\ProgramData\Anaconda3\envs\kingtf2\lib\site-packages\IPython\core\interactiveshell.py", line 3417, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-2-efcb3421ca7e>", line 1, in <module>
    runfile('D:/pyth/pj4/_testfile.py', wdir='D:/pyth/pj4')
  File "D:\Program Files\JetBrains\PyCharm 2020.2.1\plugins\python\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "D:\Program Files\JetBrains\PyCharm 2020.2.1\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "D:/pyth/pj4/_testfile.py", line 99, in <module>
    F = final_net(inputshape, Alex_net)
  File "D:/pyth/pj4/_testfile.py", line 82, in final_net
    outputs = Concat_net(inputs_1, inputs_2, model)
  File "D:/pyth/pj4/_testfile.py", line 69, in Concat_net
    input_1 = model.predict(x1)
  File "D:\ProgramData\Anaconda3\envs\kingtf2\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 1013, in predict
    use_multiprocessing=use_multiprocessing)
  File "D:\ProgramData\Anaconda3\envs\kingtf2\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 498, in predict
    workers=workers, use_multiprocessing=use_multiprocessing, **kwargs)
  File "D:\ProgramData\Anaconda3\envs\kingtf2\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 426, in _model_iteration
    use_multiprocessing=use_multiprocessing)
  File "D:\ProgramData\Anaconda3\envs\kingtf2\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 706, in _process_inputs
    use_multiprocessing=use_multiprocessing)
  File "D:\ProgramData\Anaconda3\envs\kingtf2\lib\site-packages\tensorflow_core\python\keras\engine\data_adapter.py", line 264, in __init__
    num_samples = set(int(i.shape[0]) for i in nest.flatten(inputs))
  File "D:\ProgramData\Anaconda3\envs\kingtf2\lib\site-packages\tensorflow_core\python\keras\engine\data_adapter.py", line 264, in <genexpr>
    num_samples = set(int(i.shape[0]) for i in nest.flatten(inputs))
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'


代码来源:https://ask.csdn.net/questions/1068807

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^