m0_55343311 2023-08-07 14:10 采纳率: 42.9%
浏览 4
已结题

深度学习自编码器DEC

深度学习自编码器改了DESC的一个问题

class Desc(object):  #DescModel
    def __init__(self,
                 dims,
                 x,  # input matrix, row sample, col predictors
                 ith,
                 #input_shape,
                 alpha=1.0,
                 tol=0.005,
                 init='glorot_uniform',  # initialization method
                 louvain_resolution=1.0,  # resolution for louvain
                 n_neighbors=10,  # the
                 pretrain_epochs=300,  # epoch for autoencoder
                 epochs_fit=4,  # epochs for each update,int or float
                 batch_size=256,  # batch_size for autoencoder
                 random_seed=201809,
                 activation='relu',
                 actincenter="tanh",  # activation for the last layer in encoder, and first layer in the decoder
                 drop_rate_SAE=0.2,
                 is_stacked=True,
                 use_earlyStop=True,
                 use_ae_weights=False,
                 save_encoder_weights=False,
                 save_encoder_step=5,
                 save_dir="result_tmp",
                 kernel_clustering="t",

          
                 # save result to save_dir, the default is "result_tmp". if recurvie path, the root dir must be exists, or there will be something wrong: for example : "/result_singlecell/dataset1" will return wrong if "result_singlecell" not exist
                 ):

        super(Desc, self).__init__()  #Model
        #if not os.path.exists(save_dir):
        #    print("Create the directory:" + str(save_dir) + " to save result")
        #    os.mkdir(save_dir)

        self.dims = dims
        self.x = x  # feature n*p, n:number of cells, p: number of genes
        self.alpha = alpha
        self.tol = tol
        self.init = init
        self.input_dim = dims[0]  # for clustering layer
        self.n_stacks = len(self.dims) - 1
        self.ith = self.n_stacks - 1 #自己加的

……
 self.autoencoder = SAE.make_stack(self,ith)
 hidden = self.autoencoder.get_layer(name='encoder_%d' % (self.n_stacks - 1)).output
        #l2_loss=Lambda(lambda :K.sum(K.square(K.expand_dims(inputs, axis=1) - self.clusters), axis=2),name='l2_loss')
        self.encoder = Model(inputs=self.autoencoder.input, outputs=hidden)
        #clustering_layer = ClusteringLayer(self.kernel_clustering , name='clustering')(hidden)#


        clustering_layer = ClusteringLayer(self.kernel_clustering, name='clustering')(hidden)# self.encoder.output DESC模型没有output self.kernel_clustering
        self.model = Model(inputs=self.autoencoder.input, outputs=[clustering_layer, self.autoencoder.input])#clustering_layer

结果报错:
TypeError: init() missing 1 required positional argument: 'ith'

  • 写回答

2条回答 默认 最新

  • Resphalios 2023-08-07 14:19
    关注

    你在构建 DESC 的时候 里面有个ith参数忘记传进去了 人家init理由,但是你创建这个类的时候没传进去 应该是 desc = Desc(ith=...,........)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月16日
  • 已采纳回答 8月8日
  • 创建了问题 8月7日

悬赏问题

  • ¥15 mySQL5.7.34安装遇到的问题
  • ¥15 结构功能耦合指标计算
  • ¥20 visual studio中c语言用ODBC链接SQL SERVER
  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊