8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

层“模型”需要 2 个输入,但实际收到 1 个输入张量。输入记录:[ ]

Shyam Patel 2月前

324 0

`我正在将 tensorflow 2.4.1 升级到 2.15.0。我正在重新使用用 2.4.1 训练的模型。我无法在升级版本中进行批量预测。输入格式为 1 tensor.Model

`我正在将 tensorflow 2.4.1 升级为 2.15.0。我正在重新使用用 2.4.1 训练的模型。我无法在升级版本中进行批量预测。输入格式为 1 张量。模型输入形状:[(None, 46, 1), (None, 46, 1)]批量数据形状:[(200, 46, 1), (200, 46, 1)]

两个版本的模型摘要相同。

import tensorflow as tf
import numpy as np

class predictDataGenerator(tf.keras.utils.Sequence):
    'Generates data for Keras'
    def __init__(self, inData, nsamps, batch_size=250, dim=46,
                 n_channels=1, inData_ch2=None, n_classes=2,
                 avg_num=3, befN=18, shuffle=True):
        'Initialization'
        self.dim = dim
        self.batch_size = batch_size
        self.inData = inData
        self.inData_ch2 = inData_ch2
        self.n_channels = n_channels
        self.n_classes = n_classes
        self.avg_num = avg_num
        self.befN = befN
        self.part_start = (self.befN + 1) * self.avg_num + self.avg_num // 2 - (self.befN + 1)
        self.part_window = self.dim + 1
        self.obj_window = (self.dim + 1) * self.avg_num
        self.part_tile = np.tile(np.arange(self.dim), (self.batch_size, 1))
        self.part_tile += np.arange(self.batch_size).reshape(self.batch_size, 1)
        self.shuffle = shuffle
        self.nsamps = nsamps
        self.on_epoch_end()
        self.batch_count = self.__len__()

    def __len__(self):
        'Denotes the number of batches per epoch'
        return int(np.ceil(self.nsamps / self.batch_size))

    def __getitem__(self, index):
        'Generate one batch of data'
        # Generate indexes of the batch
        batch_data = self.inData[index * self.batch_size:(index + 1) * self.batch_size + self.obj_window - 1]
        num_points = batch_data.size - (self.obj_window - 1)
        X_OBJ = np.empty((num_points, self.dim, self.n_channels))
        X_PART = np.empty((num_points, self.dim, self.n_channels))
        for i in range(self.n_channels):
            X_obj, X_part = self.__data_generation(batch_data, num_points)
            X_PART[:, :, i] = X_part
            X_OBJ[:, :, i] = X_obj
        return (X_OBJ, X_PART)

    def on_epoch_end(self):
        'Updates indexes after each epoch'
        # Optional: Implement shuffling if needed
        if self.shuffle:
            self.indexes = np.arange(self.nsamps)
            np.random.shuffle(self.indexes)

    def get_part_data(self, batch_data, num_points):
        'Prepare part data'
        part_end = self.part_start + num_points + self.part_window
        temp_data = batch_data[self.part_start:part_end]  # Required samples
        temp_data = np.diff(temp_data)  # temp_data[1:] - temp_data[:-1]
        X_part2 = temp_data[self.part_tile[:num_points, :]]
        return X_part2

    def get_obj_data(self, batch_data, num_points):
        'Prepare object data'
        X_OBJ2 = np.empty((num_points, self.dim))
        for i in range(self.avg_num):
            temp_end = batch_data.size - (batch_data.size - i) % self.avg_num
            temp_data = batch_data[i:temp_end]
            temp_data = temp_data.reshape(-1, self.avg_num)
            temp_data = np.sum(temp_data, axis=1) / self.avg_num
            temp_data = np.diff(temp_data)
            num_windows = temp_data.size - self.dim + 1
            obj_tile = np.tile(np.arange(self.dim), (num_windows, 1))
            obj_tile += np.arange(num_windows).reshape(num_windows, 1)
            X_OBJ2[i::self.avg_num] = temp_data[obj_tile]
        return X_OBJ2

    def __data_generation(self, batch_data, num_points):
        'Generates data for one batch'
        X_part = self.get_part_data(batch_data, num_points)
        X_obj = self.get_obj_data(batch_data, num_points)
        X_part = X_part - np.mean(X_part, axis=1).reshape(-1, 1)
        X_part = X_part / ((np.std(X_part, axis=1)).reshape(-1, 1) + 1e-100)
        X_obj = X_obj - np.mean(X_obj, axis=1).reshape(-1, 1)
        X_obj = X_obj / ((np.std(X_obj, axis=1)).reshape(-1, 1) + 1e-100)
        return X_obj, X_part

X_test = np.arange(1140)
pred_length = X_test.size-l_start-l_end
bsize = 200 

testgen = predictDataGenerator(X_test.reshape(-1),
                    pred_length,batch_size=bsize,dim = Window,
                    avg_num = avgN,
                    befN = window1,shuffle=False)
print(len(testgen))
probs = bd_model.predict(testgen)

错误:

ValueError:层“模型”需要 2 个输入,但实际收到 1 个输入张量。收到的输入:[ ]`

帖子版权声明 1、本帖标题:层“模型”需要 2 个输入,但实际收到 1 个输入张量。输入记录:[ ]
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Shyam Patel在本站《tensorflow》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我已按照 http://kubernetes.io/docs/hellonode/ 上的 helloword 教程进行操作。当我运行:kubectl run hello-node --image=gcr.io/PROJECT_ID/hello-node:v1 --port=8080 时,我得到:

    上的 helloword 教程进行了操作 http://kubernetes.io/docs/hellonode/ .

    当我跑步时:

    kubectl run hello-node --image=gcr.io/PROJECT_ID/hello-node:v1 --port=8080
    

    我得到:

    与服务器 localhost:8080 的连接被拒绝 - 您是否指定了正确的主机或端口?

    为什么命令行尝试连接到本地主机?

  • 问题是你的 kubeconfig 不正确。要自动生成它,请运行:

    gcloud container clusters get-credentials "CLUSTER NAME"
    

    这对我有用。

  • 更新集群配置后,我也遇到了此错误。运行此 get-credentials 命令对我有用。

  • 谢谢,对我来说它也询问区域名称,gcloud container clusters get-credentials \'CLUSTER NAME\' --region=us-central1-a

  • @Alanwagner 请更新您的答案,以包括类似 Jeyan 的区域评论。或者 Jeyan,请您发布您的答案,它将被接受为答案

  • 确保您的配置已设置为项目 -

    gcloud config set project [PROJECT_ID]
    
    1. 运行帐户中的集群清单:
    gcloud container clusters list
    
    1. 检查输出:
    NAME           LOCATION       MASTER_VERSION  MASTER_IP      MACHINE_TYPE  NODE_VE.      NUM_NODES  STATUS
    alpha-cluster  asia-south1-a  1.9.7-gke.6     35.200.254.78  f1-micro      1.9.7-gke.6   3          RUNNING
    
    1. 运行以下 cmd 来获取正在运行的集群的凭据:
    gcloud container clusters get-credentials your-cluster-name --zone your-zone       --project your-project
    
    1. 输出结果如下:
    Fetching cluster endpoint and auth data.
    kubeconfig entry generated for alpha-cluster.
    
    1. 尝试检查正在运行的节点的详细信息 kubectl ,例如下面列出当前命名空间中的所有 pod,并提供更多详细信息:
    kubectl get nodes -o wide
    

    應該可以去。

  • 帮了我大忙。谢谢!$ gcloud 容器集群获取凭据--zone 你的区域 --project

  • 我也遇到了同样的错误,这个对我有用。运行

    minikube status

    如果响应是

    type: Control Plane
    host: Stopped
    kubelet: Stopped
    apiserver: Stopped
    kubeconfig: Stopped
    

    跑步 minikube start

    type: Control Plane
    host: Running
    kubelet: Running
    apiserver: Running
    kubeconfig: Configured
    

    您可以继续

  • 引用 10

    普通用户 身份运行以下命令

    mkdir -p $HOME/.kube

    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

    sudo chown $(id -u):$(id -g) $HOME/.kube/config

    但是,如果您以普通用户身份运行此命令,则在尝试以 root 用户身份访问时,您将收到“与服务器 localhost:8080 的连接被拒绝 - 您是否指定了正确的主机或端口?”,反之亦然。因此, 请尝试以执行上述命令的用户身份访问“kubectl” .

  • 如果从工作节点执行此操作 - 请确保 kubeconfig 存在。com/questions/36078305/…

  • qwer 2月前 0 只看Ta
    引用 12

    尽管安装了,但 kubernetes 文件夹在我的计算机上的 /etc/... 中不存在,因此无需编辑 admin.conf。有没有什么方法可以解决这个问题?

  • 我尝试连接本地主机并遇到同样的问题,然后我发现,我需要启动 Kubernetes API 服务器的代理。

    kubectl proxy --port=8080
    

    https://kubernetes.io/docs/tasks/extend-kubernetes/http-proxy-access-api/

  • 在执行 Udacity 的名为“使用 Kubernetes 的可扩展微服务”的教程 https://classroom.udacity.com/courses/ud615 时,在使用 Kubernetes(课程第 3 部分)时重现相同的错误。

    启动单个实例:

    kubectl run nginx --image=nginx:1.10.0

    错误:

    Unable to connect to the server: dial tcp [::1]:8080: connectex: No connection could be made because the target machine actively refused it.

    我如何解决错误:

    登录Google云端平台

    导航至容器引擎 Google Cloud Platform、容器引擎

    单击 “集群”上的 “连接”

    使用登录凭证访问终端中的集群 [NAME]

    继续工作!!!

  • 重启后我遇到了同样的问题,我按照 此处

    因此,请尝试以下操作:

    $ sudo -i
    # swapoff -a
    # exit
    $ strace -eopenat kubectl version
    

    此后它运行正常。

  • 这是能想象到的最奇怪的解决方案……使用 swap 到底有什么关系?唯一不太重要的事情感觉就像下一行,straceing,它只是记录系统调用,对吧?

  • 嗯,k8s 要求关闭 swap。至于 strace,它只是一个检查,不是解决方案的一部分

  • dkv 2月前 0 只看Ta
    引用 18

    嗯,进一步研究后,我发现 k8s 不使用 swap 的原因很合理。但是,客户端计算机(使用 kubectl)需要关闭 swap 的原因仍然不合理;似乎只有服务器计算机(集群中托管 pod 的节点)才需要这样做。

  • 引用 19

    好吧,你的观点让我思考。我在这里大胆猜测一下:在所有场景中,包括这里的问题和答案,它们都在主节点本身中运行 kubectl,基本上 kubeadm 正在运行。所以本质上我猜我们让 kubeadm 工作,因此 kubectl 客户端开始工作。你可以验证这一点,因为错误都指向 localhost

  • 此错误意味着 kubectl 正在尝试连接到本地机器上运行的 Kubernetes apiserver,如果您尚未将其配置为与远程 apiserver 通信,则这是默认设置。

返回
作者最近主题: