Kungs8
码龄7年
关注
提问 私信
  • 博客:351,405
    问答:1,477
    352,882
    总访问量
  • 53
    原创
  • 529,028
    排名
  • 6,582
    粉丝
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:安徽省
  • 加入CSDN时间: 2017-10-16
博客简介:

yanpenggong的博客

查看详细资料
个人成就
  • 获得202次点赞
  • 内容获得90次评论
  • 获得881次收藏
  • 代码片获得2,126次分享
创作历程
  • 2篇
    2023年
  • 3篇
    2022年
  • 3篇
    2021年
  • 1篇
    2020年
  • 9篇
    2019年
  • 36篇
    2018年
成就勋章
TA的专栏
  • 服务端
    1篇
  • Markdown
    1篇
  • Typora
    1篇
  • 大数据
    2篇
  • Django
    3篇
  • Mysql
    1篇
  • JSON
    1篇
  • matplotlib
    3篇
  • python
    27篇
  • 人工智能
    12篇
  • docker
    2篇
  • 论文下载
  • Mongodb
    1篇
  • 爬虫
    2篇
  • 服务器
    2篇
  • Mac
    2篇
  • 文件下载
    1篇
  • Nginx
    1篇
  • shell自动化运维
    1篇
  • 数据结构
    1篇
  • Tensorflow
    7篇
  • Microsoft office
  • spark
    4篇
  • Scala
    2篇
  • 网络维护
    1篇
  • 算法
    1篇
兴趣领域 设置
  • Python
    pythonscikit-learnfastapipandasmatplotlibgunicorn
  • 数据结构与算法
    算法图搜索算法
  • 大数据
    flink
  • 人工智能
    opencv语音识别计算机视觉机器学习人工智能深度学习神经网络自然语言处理tensorflow知识图谱pytorch图像处理nlp数据分析聚类分类
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

351人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

基于图像链接的批量下载

【代码】基于图像链接的批量下载。
原创
发布博客 2023.08.21 ·
544 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

livelink捕捉的表情动画如何导入maya

答:

要将用 LiveLink 捕捉的表情动画导入到 Maya 中进行修整,可以按照以下步骤进行操作:

  1. 将用 LiveLink 捕捉的表情动画导出为 FBX 格式。在导出时,需要确保选择正确的骨骼和动画数据。
  2. 打开 Maya,创建一个新场景,然后选择 File -> Import 选项。
  3. 在 Import 对话框中,选择刚才导出的 FBX 文件,并设置导入选项。需要注意的是,在设置导入选项时,需要选择合适的骨骼绑定方式和动画导入方式,以确保导入的动画数据与原始数据一致。
  4. 导入完成后,可以使用 Maya 的动画编辑工具对导入的动画进行修整。在进行修整时,可以使用 Maya 的表情控制器等工具,对表情进行进一步的调整和烘焙。

需要注意的是,在导入和修整表情动画时,需要确保选择正确的骨骼和控制器,并遵循一定的动画制作流程,以确保导入的动画数据与原始数据一致,并保持动画的流畅性和连贯性。

回答问题 2023.07.07

Docker从入门到实践

Docker 是个伟大的项目,它彻底释放了虚拟化的威力,极大降低了云计算资源供应的成本,同时让应用的分发、测试、部署和分发都变得前所未有的高效和轻松!本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍一些高级操作;第 10 章给出典型的应用场景和实践案例;11 ~ 13 章介绍关于 Docker 实现的相关技术。14 ~ 1
原创
发布博客 2023.01.19 ·
1950 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

肯德尔系数计算P>0.05该如何解决?percent agreement如何使用

答:

def kendall(x, y):
    assert len(x) == len(y) > 0
    c = 0 #concordant count
    d = 0 #discordant count
    t = 0 #tied count
    for (i, j) in combinations(range(len(x)), 2):
        s = (x[i] - x[j]) * (y[i] - y[j])
        if s:
            c += 1
            d += 1
            if s > 0:
                t += 1
            elif s < 0:
                t -= 1
        else:
            if x[i] - x[j]:
                c += 1
            elif y[i] - y[j]:
                d += 1
    return t / math.sqrt(c * d)

GSM = [6,9,3,12,8,7,10,11,2,5,4,1]
LGC = [6,9,3,12,7,8,11,10,2,4,5,1]

kendall_test = kendall(GSM, LGC)
回答问题 2022.10.07

SEER Star 筛选数据 出现错误 怎么处理

答:

文件都不存啊,说明传参或者接口有问题

回答问题 2022.09.20

用深度学习或OpenCV辨识多张人脸?

答:

识别,分类,再匹配,完美展示~

回答问题 2022.09.20

PygNodePropPredDataset 能读取本地数据集吗?

答:

源码在这里,阔以取研究一下~


import pandas as pd
import shutil, os
import os.path as osp
import torch
import numpy as np
from torch_geometric.data import InMemoryDataset
from ogb.utils.url import decide_download, download_url, extract_zip
from ogb.io.read_graph_pyg import read_graph_pyg


class PygGraphPropPredDataset(InMemoryDataset):
    def __init__(self, name, root = 'dataset', transform=None, pre_transform = None, meta_dict = None):
        '''
            - name (str): name of the dataset
            - root (str): root directory to store the dataset folder
            - transform, pre_transform (optional): transform/pre-transform graph objects
            - meta_dict: dictionary that stores all the meta-information about data. Default is None, 
                    but when something is passed, it uses its information. Useful for debugging for external contributers.
        ''' 

        self.name = name ## original name, e.g., ogbg-molhiv
        
        if meta_dict is None:
            self.dir_name = '_'.join(name.split('-')) 
            
            # check if previously-downloaded folder exists.
            # If so, use that one.
            if osp.exists(osp.join(root, self.dir_name + '_pyg')):
                self.dir_name = self.dir_name + '_pyg'

            self.original_root = root
            self.root = osp.join(root, self.dir_name)
            
            master = pd.read_csv(os.path.join(os.path.dirname(__file__), 'master.csv'), index_col = 0)
            if not self.name in master:
                error_mssg = 'Invalid dataset name {}.\n'.format(self.name)
                error_mssg += 'Available datasets are as follows:\n'
                error_mssg += '\n'.join(master.keys())
                raise ValueError(error_mssg)
            self.meta_info = master[self.name]
            
        else:
            self.dir_name = meta_dict['dir_path']
            self.original_root = ''
            self.root = meta_dict['dir_path']
            self.meta_info = meta_dict
        
        # check version
        # First check whether the dataset has been already downloaded or not.
        # If so, check whether the dataset version is the newest or not.
        # If the dataset is not the newest version, notify this to the user. 
        if osp.isdir(self.root) and (not osp.exists(osp.join(self.root, 'RELEASE_v' + str(self.meta_info['version']) + '.txt'))):
            print(self.name + ' has been updated.')
            if input('Will you update the dataset now? (y/N)\n').lower() == 'y':
                shutil.rmtree(self.root)

        self.download_name = self.meta_info['download_name'] ## name of downloaded file, e.g., tox21

        self.num_tasks = int(self.meta_info['num tasks'])
        self.eval_metric = self.meta_info['eval metric']
        self.task_type = self.meta_info['task type']
        self.__num_classes__ = int(self.meta_info['num classes'])
        self.binary = self.meta_info['binary'] == 'True'

        super(PygGraphPropPredDataset, self).__init__(self.root, transform, pre_transform)

        self.data, self.slices = torch.load(self.processed_paths[0])

    def get_idx_split(self, split_type = None):
        if split_type is None:
            split_type = self.meta_info['split']
            
        path = osp.join(self.root, 'split', split_type)

        # short-cut if split_dict.pt exists
        if os.path.isfile(os.path.join(path, 'split_dict.pt')):
            return torch.load(os.path.join(path, 'split_dict.pt'))

        train_idx = pd.read_csv(osp.join(path, 'train.csv.gz'), compression='gzip', header = None).values.T[0]
        valid_idx = pd.read_csv(osp.join(path, 'valid.csv.gz'), compression='gzip', header = None).values.T[0]
        test_idx = pd.read_csv(osp.join(path, 'test.csv.gz'), compression='gzip', header = None).values.T[0]

        return {'train': torch.tensor(train_idx, dtype = torch.long), 'valid': torch.tensor(valid_idx, dtype = torch.long), 'test': torch.tensor(test_idx, dtype = torch.long)}

    @property
    def num_classes(self):
        return self.__num_classes__

    @property
    def raw_file_names(self):
        if self.binary:
            return ['data.npz']
        else:
            file_names = ['edge']
            if self.meta_info['has_node_attr'] == 'True':
                file_names.append('node-feat')
            if self.meta_info['has_edge_attr'] == 'True':
                file_names.append('edge-feat')
            return [file_name + '.csv.gz' for file_name in file_names]

    @property
    def processed_file_names(self):
        return 'geometric_data_processed.pt'

    def download(self):
        url = self.meta_info['url']
        if decide_download(url):
            path = download_url(url, self.original_root)
            extract_zip(path, self.original_root)
            os.unlink(path)
            shutil.rmtree(self.root)
            shutil.move(osp.join(self.original_root, self.download_name), self.root)

        else:
            print('Stop downloading.')
            shutil.rmtree(self.root)
            exit(-1)

    def process(self):
        ### read pyg graph list
        add_inverse_edge = self.meta_info['add_inverse_edge'] == 'True'

        if self.meta_info['additional node files'] == 'None':
            additional_node_files = []
        else:
            additional_node_files = self.meta_info['additional node files'].split(',')

        if self.meta_info['additional edge files'] == 'None':
            additional_edge_files = []
        else:
            additional_edge_files = self.meta_info['additional edge files'].split(',')

        data_list = read_graph_pyg(self.raw_dir, add_inverse_edge = add_inverse_edge, additional_node_files = additional_node_files, additional_edge_files = additional_edge_files, binary=self.binary)

        if self.task_type == 'subtoken prediction':
            graph_label_notparsed = pd.read_csv(osp.join(self.raw_dir, 'graph-label.csv.gz'), compression='gzip', header = None).values
            graph_label = [str(graph_label_notparsed[i][0]).split(' ') for i in range(len(graph_label_notparsed))]

            for i, g in enumerate(data_list):
                g.y = graph_label[i]

        else:
            if self.binary:
                graph_label = np.load(osp.join(self.raw_dir, 'graph-label.npz'))['graph_label']
            else:
                graph_label = pd.read_csv(osp.join(self.raw_dir, 'graph-label.csv.gz'), compression='gzip', header = None).values

            has_nan = np.isnan(graph_label).any()

            for i, g in enumerate(data_list):
                if 'classification' in self.task_type:
                    if has_nan:
                        g.y = torch.from_numpy(graph_label[i]).view(1,-1).to(torch.float32)
                    else:
                        g.y = torch.from_numpy(graph_label[i]).view(1,-1).to(torch.long)
                else:
                    g.y = torch.from_numpy(graph_label[i]).view(1,-1).to(torch.float32)

        if self.pre_transform is not None:
            data_list = [self.pre_transform(data) for data in data_list]

        data, slices = self.collate(data_list)

        print('Saving...')
        torch.save((data, slices), self.processed_paths[0])

回答问题 2022.09.20

ScalaLearning从入门到神坑

Spark的设计目的之一就是使程序编写更快更容易,这也是Spark选择Scala的原因所在。总体而言,Scala具有以下突出的优点:- Scala具备强大的并发性,支持函数式编程,可以更好地支持分布式系统;- Scala语法简洁,能提供优雅的API;- Scala兼容Java,运行速度快,且能融合到Hadoop生态圈中。
原创
发布博客 2022.09.19 ·
373 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Scala快速从入门到神坑

发布资源 2022.09.19 ·
pdf

Test loss稳定下降,相较于Train loss但特别大

答:

数据有没有做预处理?测试数据和训练数据需要进行统一的预处理,除非都不进行

回答问题 2022.09.16

使用open CV提取图像

答:

easyocr 了解一下

回答问题 2022.09.09

高效LED灯驱动电源

答:

如果放到人工智能上,使用算法来自动调整做,还是阔以的。

回答问题 2022.09.09

采用sigmoid激活函数,BCE损失函数进行网络训练,训练过程中loss不断下降,但其精确度acc却一直不变

答:

从以下几点查看:

  1. 损失函数的使用
  2. 样本数据集
  3. 参数的设置,类似学习率等等
回答问题 2022.09.09

Python 根据指定行数拆分原数据

答:

使用pandas 的iloc 进行截断,拼接新的dataframe

回答问题 2022.09.09

关于“空间计量模型”画图的问题:SCI核心期刊的这种LISA集群图都是怎么画的

答:

很多都是二次开发出的结果。

GIS数据转换器
一款功能强大、界面简洁、操作简单的GIS格式及坐标系的转换工具。支持DWG、SHP、MDB、Kml、Kmz、Gpx、GeoJson、EXCEL、TXT、CSV、SQL Server、MySQL、PostgreSQL、JPG、PDF、GeoTiff、Image(img)、Bitmap(bmp)、Png格式和国家2000、西安80、北京54、WGS84、火星坐标、百度坐标、墨卡托坐标的转换,支持批量转换、图层合并和地图数据浏览。
软件官网:
http://www.geosaas.com/

回答问题 2022.09.08

python开发webservice

答:

flask了解一下~

回答问题 2022.09.07

数学建模无思路,希望解决下面问题,有悬赏!

答:

类似于仓储网络选址管理了,阔以搜搜相关的算法资料,eg:禁忌搜索、模拟退火算法、遗传算法、神经网络、粒子群、蚁群等。

回答问题 2022.08.23

关于Windows Python里的“\r”问题:ERROR: .lst file contains \r at pos 4. This should never happen.

答:

import platform

str=*********
str = str.encode().decode(encoding="ascii", errors="ignore") if platform.system() == "Windows" else str
回答问题 2022.08.23

cmake用于openpose开发是第三方依赖库几乎下载不下来

答:

更换国内镜像噻~

回答问题 2022.08.23

求tensorflow安装包

答:

你的python版本是什么?我阔以给你提供,联系方式见我的博客

回答问题 2022.08.23
加载更多