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

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

Shyam Patel 2月前

337 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 的连接被拒绝 - 您是否指定了正确的主机或端口?

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

  • 对我来说,这只是磁盘已满,如果磁盘已满,kubectl 也会显示此错误。遗憾的是,清理空间并不能立即解决问题,我需要重新启动。

  • 如果您正在使用 docker 桌面 ,请确保已 启用 Kubernetes

    Go to Preferences > Kubernetes and make sure 'Enable Kubernetes' is checked.
    
  • 如果使用 minikube,则可以使用以下命令切换到适当的配置文件:

    minikube profile # get current profile
    minikube profile <minikube profile> # set profile
    
  • 就我而言,我启动了 docker 桌面并启用了 kubernetes,然后在终端上应用了 kubectl 命令,然后它就起作用了

  • 当我以 root 用户身份登录并运行命令 kubectl get pods 时显示错误

    W1021 22:14:58.411448   41786 loader.go:223] Config not found: /etc/kubernetes/admin.conf The connection to the server localhost:8080 was refused - did you specify the right host or port?
    

    并且没有root用户显示pods没有错误。

  • 修复错误 – 与服务器 localhost:8080 的连接被拒绝

    1. 检查kubeconfig环境变量是否导出,若未导出

    export KUBECONFIG=/etc/kubernetes/admin.conf 或 $HOME/.kube/config

    1. 检查主目录中的 .kube 或配置文件。如果没有找到,则需要将其移动到主目录。使用以下命令

    cp /etc/kubernetes/admin.conf $HOME/

    chown $(id -u):$(id -g) $HOME/admin.conf

    导出 KUBECONFIG=$HOME/admin.conf

    无论何时启动主节点,您都可能需要设置环境变量。因此,这对您来说是一项重复性任务。可以使用以下命令永久设置它。

    回显'导出 KUBECONFIG=$HOME/admin.conf'>>$HOME/.bashrc

  • 我在将 \' Bash on Windows \' 与 azure kubernetes 结合使用时遇到了这个问题

    az aks get-credentials -n <myCluster>-g <myResourceGroup>
    

    配置文件是自动生成的,并 根据操作系统 “~/.kube/config”

    要解决此问题 - 从 Bash 命令行运行 cp <yourWindowsPathToConfigPrintedFromAbobeCommand> ~/.kube/config

  • 我也收到以下相同的错误:

    无法连接到服务器:拨号 tcp [::1]:8080:connectex:无法建立连接,因为目标机器主动拒绝。

    然后我只需执行以下命令,发现一切运行正常。

    PS C:> .\minikube.exe 启动

    启动本地 Kubernetes v1.10.0 集群...启动虚拟机...下载 Minikube ISO 150.53 MB / 150.53 MB [=============================================] 100.00% 0s获取虚拟机 IP 地址...将文件移入集群...下载 kubeadm v1.10.0下载 kubelet v1.10.0完成下载 kubelet v1.10.0完成下载 kubeadm v1.10.0设置证书...连接到集群...设置 kubeconfig...启动集群组件...Kubectl 现已配置为使用集群。从配置文件加载缓存的图像。PS C:> .\minikube.exe start启动本地 Kubernetes v1.10.0集群...启动虚拟机...获取虚拟机 IP 地址...将文件移入集群...设置证书...连接到集群...设置 kubeconfig...启动集群组件...Kubectl 现已配置为使用集群。

  • 引用 11

    我通过使用以下命令删除 kube 配置的错误环境变量来解决此问题

    unset KUBECONFIG
    
  • 引用 12

    如果有人像我一样,在从 切换到 时由于 Cloud Build 步骤中的底层错误而遇到此线程 gcr.io/cloud-builders/kubectl gcr.io/google.com/cloudsdktool/cloud-sdk 则需要明确调用 get-credentials 才能 kubectl 工作。我的管道:

    steps:
      - name: gcr.io/google.com/cloudsdktool/cloud-sdk
        entrypoint: 'sh'
        args:
          - '-c'
          - |
            gcloud container clusters get-credentials --zone "$$CLOUDSDK_COMPUTE_ZONE" "$$CLOUDSDK_CONTAINER_CLUSTER"
            kubectl call-what-you-need-here
    options:
      env:
        - 'CLOUDSDK_COMPUTE_ZONE=europe-west3-a'
        - 'CLOUDSDK_CONTAINER_CLUSTER=my-cluster'
    
  • 尝试以 sudo 权限模式
    例子 sudo kubectl....

  • 如果您使用 kops 在 AWS 上创建了集群,那么 kops 会 ~/.kube/config 为您创建,这很好。但如果其他人需要连接到该集群,那么他们也需要安装 kops,以便它可以为您创建 kubeconfig:

    export AWS_ACCESS_KEY_ID=$(aws configure get aws_access_key_id)
    export AWS_SECRET_ACCESS_KEY=$(aws configure get aws_secret_access_key)
    export CLUSTER_ALIAS=kubernetes-cluster
    
    kubectl config set-context ${CLUSTER_ALIAS} \
        --cluster=${CLUSTER_FULL_NAME} \
        --user=${CLUSTER_FULL_NAME}
    
    kubectl config use-context ${CLUSTER_ALIAS}
    
    kops export cluster --name ${CLUSTER_FULL_NAME} \
      --region=${CLUSTER_REGION} \
      --state=${KOPS_STATE_STORE}
    
  • 我在使用本地 docker 时遇到了这个问题。要做的事情是检查其启动的容器的日志,以找出问题所在。对我来说,结果是 etcd 崩溃了

       $ docker logs <etcdContainerId>
       <snip>
       2016-06-15 09:02:32.868569 C | etcdmain: listen tcp 127.0.0.1:7001: bind: address already in use
    

    啊哈!我一直在 Docker 容器中使用 Cassandra,并且转发了所有端口,因为我不确定它需要暴露哪些端口,而 7001 是它的端口之一。停止 Cassandra、清理混乱并重新启动它,问题就解决了。

  • 的改进 Omokahfe :

    minikube status
    

    如果响应是

    E0623 09:12:24.603405   21127 status.go:396] kubeconfig endpoint: extract IP: "minikube" does not appear in /home/<user>/.kube/config
    minikube
    type: Control Plane
    host: Running
    kubelet: Running
    apiserver: Running
    kubeconfig: Misconfigured
    timeToStop: Nonexistent
    
    
    WARNING: Your kubectl is pointing to stale minikube-vm.
    To fix the kubectl context, run `**minikube update-context**`
    

    跑步

    minikube update-context
    

    然后它会显示

    * "minikube" context has been updated to point to 10.254.183.66:8443
    * Current context is "minikube"
    

    进而

    minikube status
    

    将会呈现

    type: Control Plane
    host: Running
    kubelet: Running
    apiserver: Running
    kubeconfig: Configured
    timeToStop: Nonexistent
    
  • 我想说这是正确答案之一。只需将 admin.conf 添加到普通用户的主目录中即可。

  • 就我而言,KUBECONFIG 文件中的当前上下文已更改,因此最好尝试原始文件 sudo kubectl --kubeconfig /etc/kubernetes/admin.conf 获取节点。

  • 自从发布以来我遇到了同样的问题,似乎必须使用 KUBECONFIG 显式

    sudo cp /etc/kubernetes/admin.conf $HOME/

    sudo chown $(id -u):$(id -g) $HOME/admin.conf

    导出 KUBECONFIG=$HOME/admin.conf

  • 无论您的环境如何(是否使用 gcloud),您都需要将 kubectl 指向 kubeconfig。默认情况下,kubectl 需要将路径指定为 $HOME/.kube/config,或者将您的自定义路径指定为环境变量(用于脚本等)export KUBECONFIG=/your_kubeconfig_path

    请参考:: https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/

    如果您的集群没有 kubeconfig 文件,请参考 https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/

    需要找到集群的 ca.crt、apiserver-kubelet-client 密钥和证书。

返回
作者最近主题: