Code Monkey home page Code Monkey logo

originq / qpanda-2 Goto Github PK

View Code? Open in Web Editor NEW
1.1K 24.0 91.0 18.52 MB

QPanda 2 is an open source quantum computing framework developed by OriginQC that can be used to build, run, and optimize quantum algorithms.

Home Page: https://originqc.com.cn/en/quantum_soft.html?type=qpanda&lv2id=43&lv3id=72

License: Apache License 2.0

C++ 85.92% C 0.19% CMake 0.65% Cuda 2.35% Jupyter Notebook 3.60% DTrace 0.01% Python 7.26% Shell 0.02%
quantum-computing cpp14 qpanda pyqpanda quantum-algorithms quantum quantum-computer-simulator quantum-development-kit python3

qpanda-2's People

Contributors

agony5757 avatar arrowyl avatar benyuanwlw avatar itachixc avatar shenzhi-git avatar tecog avatar xiaoyaolanyun avatar yekongxiaogang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qpanda-2's Issues

ImportError: DLL load failed while importing pyQPanda.

QPanda

基本信息

  • QPanda 版本
  • 操作系统

Bug是什么?

复现Bug的步骤?

建议的解决方案

pyQPanda

基本信息

python 3.8 安装 pyqpanda 3.7.13 后 import 失败,提示 ImportError: DLL load failed while importing pyQPanda: The specified module could not be found.

  • pyQPanda 版本:3.7.13
  • Python 版本:3.8.13
  • 操作系统:windows 11 pro

Bug是什么?

ImportError: DLL load failed while importing pyQPanda: The specified module could not be found.
![Uploading image.png…](pip list and python version)

复现Bug的步骤?

conda create -n qpanda python=3.8
conda activate qpanda
python -m pip install pyqpanda
python -c "import pyqpanda"

建议的解决方案

Mac下import pyqpanda报错

Issue description问题描述

Mac下import pyqpanda报错

用的pip install pyqpanda来安装的

Reproducible example code示例代码

>>> import pyqpanda
Fatal Python error: PyThreadState_Get: no current thread

Abort trap: 6

HHL_solve_linear_equations(A, b)求解过程中异常

您好,我编译安装成功后在GetMatrix基本程序基础上,加入QPanda2中HHL demo例子到程序里做测试,可总是发现有3个问题
1.目前我能用QPanda2和C++测试了2阶、4阶、8阶矩阵的求解,为什么其他阶数或者16阶会导致计算崩溃。是因为量子比特数目限制的原因不?
image或者
image

2.使用8阶矩阵的时候制定A中数据很容易出现计算报错问题,比如
0x00007FFBC4DB4B59 处(位于 GetMatrix.exe 中)有未经处理的异常: Microsoft C++ 异常: QPanda::init_fail,位于内存位置 0x0000003802AFF1F0 处。

3.QStat result = HHL_solve_linear_equations(A, b);之后为什么会有一个预估价的double coffe = sqrt(340);这个数值我们不太理解,在文章最后不问提到了“由理论推导可以知道HHL算法对此问题求得的近似解会有较大误差”

linux环境下,编译加上-DUSE_EXTENSION=ON报错

我的编译命令是这样:
cmake -DUSE_PYQPANDA=OFF -DFIND_CUDA=OFF -DUSE_CHEMIQ=OFF -DUSE_EXTENSION=ON -DCMAKE_CXX_STANDARD=14 -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ ..

在编译过程中报错:
[ 46%] Building CXX object Core/CMakeFiles/DLL_QPANDA.dir/Utilities/Tools/ProcessOnTraversing.cpp.o
/home/openfoam2112/applications/QPanda-2-master/Core/Utilities/Tools/ProcessOnTraversing.cpp:6:10: fatal error: Extensions/VirtualZTransfer/VirtualZTransfer.h: No such file or directory
#include "Extensions/VirtualZTransfer/VirtualZTransfer.h"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [Core/CMakeFiles/DLL_QPANDA.dir/Utilities/Tools/ProcessOnTraversing.cpp.o] Error 1
make[1]: *** [Core/CMakeFiles/DLL_QPANDA.dir/all] Error 2
make: *** [all] Error 2

求解如何编译,谢谢

Compiling failure on Gentoo Linux + gcc 12/13(with master and v2.1.16 branch)

QPanda

基本信息

  • QPanda 版本: v2.1.16
  • 操作系统: Gentoo Linux

Bug是什么?

Can not compile, with both Ninja and make as cmake generator.

复现Bug的步骤?

mkdir -p build
cd build
cmake -DFIND_CUDA=OFF -DUSE_PYQPANDA=OFF -DUSE_CHEMIQ=OFF
make -j12

The above commands yields the following errors.

/home/erina/build/QPanda-2/Core/VirtualQuantumProcessor/SparesQVM/SparseQVM.cpp: In member function ‘void QPanda::SparseSimulator::SWAP(size_t, size_t)’:
/home/erina/build/QPanda-2/Core/VirtualQuantumProcessor/SparesQVM/SparseQVM.cpp:817:14: error: no matching function for call to ‘swap(std::vector<bool>::reference, std::vector<bool>::reference)’
  817 |     std::swap(_queue_Ry[index_1], _queue_Ry[index_2]);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/bits/new_allocator.h:36,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/x86_64-pc-linux-gnu/bits/c++allocator.h:33,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/bits/allocator.h:46,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/string:41,
                 from /home/erina/build/QPanda-2/include/Core/VirtualQuantumProcessor/SparseQVM/SparseQVM.h:4,
                 from /home/erina/build/QPanda-2/Core/VirtualQuantumProcessor/SparesQVM/SparseQVM.cpp:1:
/usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/bits/move.h:196:5: note: candidate: ‘std::_Require<std::__not_<std::__is_tuple_like<_Tp> >, std::is_move_constructible<_Tp>, std::is_move_assignable<_Tp> > std::swap(_Tp&, _Tp&) [with _Tp = _Bit_reference; _Require<__not_<__is_tuple_like<_Tp> >, is_move_constructible<_Tp>, is_move_assignable<_Tp> > = void]’ (near match)
  196 |     swap(_Tp& __a, _Tp& __b)
      |     ^~~~
/usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/bits/move.h:196:5: note:   conversion of argument 2 would be ill-formed:
/home/erina/build/QPanda-2/Core/VirtualQuantumProcessor/SparesQVM/SparseQVM.cpp:817:52: error: cannot bind non-const lvalue reference of type ‘std::_Bit_reference&’ to an rvalue of type ‘std::vector<bool>::reference’
  817 |     std::swap(_queue_Ry[index_1], _queue_Ry[index_2]);
      |                                   ~~~~~~~~~~~~~~~~~^
/usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/bits/move.h:220:5: note: candidate: ‘template<class _Tp, long unsigned int _Nm> std::__enable_if_t<std::__is_swappable<_Tp>::value> std::swap(_Tp (&)[_Nm], _Tp (&)[_Nm])’
  220 |     swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
      |     ^~~~

(A lot of lines truncated, most of them indicating errors about the swap function)

建议的解决方案

pyQPanda,init_quantum_machine(QMachineType.GPU)返回为空

pyQPanda

基本信息

  • pyQPanda 版本
  • 3.7.16
  • Python 版本
  • 3.8.10
  • 操作系统
    Windows 11

Bug是什么?

init_quantum_machine(QMachineType.GPU)返回为空

复现Bug的步骤?

import pyqpanda as pq
machine=pq.init_quantum_machine(QMachineType.GPU)

建议的解决方案

你好,我尝试过下载源码QPanda2.1.16使用Visual studio编译,编译流程使用的是qpanda-tutorial提供的流程,编译得到的库在调用var类型转换时会发生异常。希望能够获取最新的编译流程以及编译软件和依赖库的版本信息,以及可用的pyqpnda库。
谢谢

CUDA环境是否为必须环境?

问题描述

在执行cmake阶段报错

##示例代码

$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local .. 
-- QPANDA VERSION = [1.3.3]
-- :  No build type selected, default is Release
CUDA_TOOLKIT_ROOT_DIR not found or specified
-- Could NOT find CUDA (missing: CUDA_TOOLKIT_ROOT_DIR CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS CUDA_CUDART_LIBRARY) 
-- Found OpenMP_C: -fopenmp  
-- Found OpenMP_CXX: -fopenmp  
-- Found OpenMP: TRUE   
OPENMP FOUND
-- Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR) 
-- Could NOT find MPI_C (missing: MPI_C_LIB_NAMES MPI_C_HEADER_DIR MPI_C_WORKS) 
-- Could NOT find MPI_CXX (missing: MPI_CXX_LIB_NAMES MPI_CXX_HEADER_DIR MPI_CXX_WORKS) 
-- Could NOT find MPI (missing: MPI_C_FOUND MPI_CXX_FOUND) 
-- Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS) (Required is at least version "3")


CMake Warning at CMakeLists.txt:193 (message):
  CUDA is not found, GPUQVM is unuseable !!!


CMake Warning at CMakeLists.txt:196 (message):
  Curl is not found, CloudHTTP is unuseable !!!


CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
PYTHON_LIBRARY (ADVANCED)
    linked by target "pyQPanda" in directory /home/it2911/IdeaProjects/github/OriginQ/QPanda-2/pyQPandaCpp/pyQPanda.Core
    linked by target "pyQPandaPauliOperator" in directory /home/it2911/IdeaProjects/github/OriginQ/QPanda-2/pyQPandaCpp/pyQPanda.PauliOperator

-- Configuring incomplete, errors occurred!
See also "/home/it2911/IdeaProjects/github/OriginQ/QPanda-2/build/CMakeFiles/CMakeOutput.log".

从错误信息来看,应该是缺少CUDA组建,我的电脑没有安装Nivdia显卡,请问是否有其他解决方案?

compile pyqanda from source

现有文档是否有新内容需要更新?

  • 哪一个文件需要更新?

    文档中关于编译安装pyqpanda的部分不够清楚

  • 哪一段内容需要更新或替换? (您可以复制粘贴到这)

  • 需要更新的内容是什么?
    我是这么安装的(archlinux package, from my PKGBUILD):

    # inside build()
    # cmake/make build
    # ...
    cd "${srcdir}/QPanda/pyQPanda"
    python setup.py build
    # manual copy .so library
    cp ../build/lib/pyQPanda*.so ./build/lib/pyqpanda

    # inside package()
    # make install ...
    cd "${srcdir}/QPanda/pyQPanda"
    python setup.py install --root="${pkgdir}" --optimize=1 --skip-build

这样编译后用readme中的测试没有问题。有没有更好的办法?

cmake complains about libcurl related function undefined reference

QPanda

基本信息

  • QPanda 版本:2.1.11
  • 操作系统:arch-linux

Bug是什么?

running 'cmake ..' gives error on undefined reference to libcurl related functions

复现Bug的步骤?

1: Install QPanda with this tutorial https://qpanda-tutorial.readthedocs.io/zh/latest/Tutorial.html

2: copy the code at the end of this tutorial https://qpanda-tutorial.readthedocs.io/zh/latest/QGate.html

3: run cmake .. with the following CMakeLists.txt

cmake_minimum_required(VERSION 3.1)
#设置项目名称
project(testQPanda)
# 定义自己的 cmake 模块所在的路径
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${QPANDA_INSTALL_DIR}/lib/cmake")
#指定C++版本
set(CMAKE_CXX_STANDARD 14)

#设置 C++ 编译选项
add_definitions("-w -DGTEST_USE_OWN_TR1_TUPLE=1")
set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -g -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3")
add_compile_options(-fpermissive)

#重新定义目标链接库文件的存放位置
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
#重新定义目标二进制可执行文件的存放位置
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
#引入外部依赖包
list(APPEND CMAKE_PREFIX_PATH /usr/local/)
find_package(QPANDA REQUIRED)

# set(CURL_LIBRARY "-lcurl")
# find_package(CURL REQUIRED)

include_directories(${QPANDA_INCLUDE_DIR})
# 生成可执行文件
add_executable(${PROJECT_NAME} example.cpp)
target_link_libraries(${PROJECT_NAME} ${QPANDA_LIBRARIES})

4: run command 'make', I get error saying

/usr/bin/ld: /usr/local/lib/libQPanda2.a(QCloudMachine.cpp.o): in function `QPanda::QCloudMachine::~QCloudMachine()':
QCloudMachine.cpp:(.text+0x2a6a): undefined reference to `curl_global_cleanup'
/usr/bin/ld: /usr/local/lib/libQPanda2.a(QCloudMachine.cpp.o): in function `QPanda::QCloudMachine::QCloudMachine()':
QCloudMachine.cpp:(.text+0x3083): undefined reference to `curl_global_init'
/usr/bin/ld: /usr/local/lib/libQPanda2.a(QCloudMachine.cpp.o): in function `QPanda::QCloudMachine::post_json(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
QCloudMachine.cpp:(.text+0x3963): undefined reference to `curl_easy_init'
/usr/bin/ld: QCloudMachine.cpp:(.text+0x3974): undefined reference to `curl_slist_append'
/usr/bin/ld: QCloudMachine.cpp:(.text+0x3983): undefined reference to `curl_slist_append'
/usr/bin/ld: QCloudMachine.cpp:(.text+0x3992): undefined reference to `curl_slist_append'
/usr/bin/ld: QCloudMachine.cpp:(.text+0x39a1): undefined reference to `curl_slist_append'
/usr/bin/ld: QCloudMachine.cpp:(.text+0x39b0): undefined reference to `curl_slist_append'
/usr/bin/ld: QCloudMachine.cpp:(.text+0x39c5): undefined reference to `curl_easy_setopt'
/usr/bin/ld: QCloudMachine.cpp:(.text+0x39d9): undefined reference to `curl_easy_setopt'
/usr/bin/ld: QCloudMachine.cpp:(.text+0x39ea): undefined reference to `curl_easy_setopt'
/usr/bin/ld: QCloudMachine.cpp:(.text+0x39fc): undefined reference to `curl_easy_setopt'
/usr/bin/ld: QCloudMachine.cpp:(.text+0x3a10): undefined reference to `curl_easy_setopt'
/usr/bin/ld: /usr/local/lib/libQPanda2.a(QCloudMachine.cpp.o):QCloudMachine.cpp:(.text+0x3a24): more undefined references to `curl_easy_setopt' follow
/usr/bin/ld: /usr/local/lib/libQPanda2.a(QCloudMachine.cpp.o): in function `QPanda::QCloudMachine::post_json(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
QCloudMachine.cpp:(.text+0x3ac0): undefined reference to `curl_easy_perform'
/usr/bin/ld: QCloudMachine.cpp:(.text+0x3ad3): undefined reference to `curl_slist_free_all'
/usr/bin/ld: QCloudMachine.cpp:(.text+0x3adb): undefined reference to `curl_easy_cleanup'
/usr/bin/ld: QCloudMachine.cpp:(.text+0x3e58): undefined reference to `curl_easy_strerror'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/testQPanda.dir/build.make:102: bin/testQPanda] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/testQPanda.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

建议的解决方案

I checked the installation of QPanda, there was no error. They were able to find curl fine. Not sure why is this happening.

if the installer of the system is compiled in mingw64, there are errors during the process of installation

QPanda

基本信息

  • QPanda 版本:2.1.4
  • 操作系统:windows 10

Bug是什么?

if the name of the archive downloaded for mingw64 with "win32" while not "posix", there will be message of errors during the process of building the installer for qpanda2

复现Bug的步骤?

for the windows 10, during the "RUN" panel of the start menu, you can input "cmd" to open a window for commands input. then you can see and input commands like as follows:

Microsoft Windows [版本 10.0.19042.1466]
(c) Microsoft Corporation。保留所有权利。

C:\Users\zhang>d:

D:>cd d:\qpanda-2-master

D:\QPanda-2-master>md build

D:\QPanda-2-master>cd .\build

D:\QPanda-2-master\build>cmake -G"MinGW Makefiles" -DFIND_CUDA=OFF -DCMAKE_INSTALL_PREFIX=D:/QPanda2 ..
......<there are no any errors / warning>

D:\QPanda-2-master\build>mingw32-make
......<there are no any errors / warning, too>

[ 3%] Building CXX object ThirdParty/antlr4/runtime/CMakeFiles/antlr4.dir/src/ANTLRInputStream.cpp.obj
In file included from D:\QPanda-2-master\ThirdParty\antlr4\runtime\src\ANTLRInputStream.cpp:11:
D:\QPanda-2-master\ThirdParty\antlr4\runtime\src\support/CPPUtils.h:69:10: error: 'condition_variable' in namespace 'st
' does not name a type
std::condition_variable _readerGate;
^~~~~~~~~~~~~~~~~~
D:\QPanda-2-master\ThirdParty\antlr4\runtime\src\support/CPPUtils.h:69:5: note: 'std::condition_variable' is defined in header '<condition_variable>'; did you forget to '#include <condition_variable>'?
D:\QPanda-2-master\ThirdParty\antlr4\runtime\src\support/CPPUtils.h:1:1:
+#include <condition_variable>
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
D:\QPanda-2-master\ThirdParty\antlr4\runtime\src\support/CPPUtils.h:69:5:
std::condition_variable _readerGate;
^~~
D:\QPanda-2-master\ThirdParty\antlr4\runtime\src\support/CPPUtils.h:70:10: error: 'condition_variable' in namespace 'st
' does not name a type
std::condition_variable _writerGate;
^~~~~~~~~~~~~~~~~~
D:\QPanda-2-master\ThirdParty\antlr4\runtime\src\support/CPPUtils.h:70:5: note: 'std::condition_variable' is defined in header '<condition_variable>'; did you forget to '#include <condition_variable>'?
std::condition_variable _writerGate;
^~~
D:\QPanda-2-master\ThirdParty\antlr4\runtime\src\support/CPPUtils.h:72:10: error: 'mutex' in namespace 'std' does not name a type
std::mutex _mutex;
^~~~~
D:\QPanda-2-master\ThirdParty\antlr4\runtime\src\support/CPPUtils.h:72:5: note: 'std::mutex' is defined in header ''; did you forget to '#include '?
D:\QPanda-2-master\ThirdParty\antlr4\runtime\src\support/CPPUtils.h:1:1:
+#include
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
D:\QPanda-2-master\ThirdParty\antlr4\runtime\src\support/CPPUtils.h:72:5:
std::mutex _mutex;
^~~
mingw32-make[2]: *** [ThirdParty\antlr4\runtime\CMakeFiles\antlr4.dir\build.make:121: ThirdParty/antlr4/runtime/CMakeFiles/antlr4.dir/src/ANTLRInputStream.cpp.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:598: ThirdParty/antlr4/runtime/CMakeFiles/antlr4.dir/all] Error 2
mingw32-make: *** [Makefile:135: all] Error 2

建议的解决方案

the name of the archive of installer for building the mingw64 in advanced should include the word "posix"

pyQPanda

基本信息

  • pyQPanda 版本
  • Python 版本
  • 操作系统

Bug是什么?

复现Bug的步骤?

建议的解决方案

macOs下编译找不到openmp库

QPanda

基本信息

  • QPanda 版本
  • 操作系统:Darwin wxrMBA.local 18.7.0 Darwin Kernel Version 18.7.0: Thu Jun 20 18:42:21 PDT 2019; root:xnu-4903.270.47~4/RELEASE_X86_64 x86_64

Bug是什么?

[main] Changes were detected in CMakeLists.txt but we could not reconfigure the project because another operation is already in progress.
[cmake] -- Could NOT find OpenMP_C (missing: OpenMP_C_FLAGS OpenMP_C_LIB_NAMES)
[cmake] -- Could NOT find OpenMP_CXX (missing: OpenMP_CXX_FLAGS OpenMP_CXX_LIB_NAMES)
[cmake] -- Could NOT find OpenMP (missing: OpenMP_C_FOUND OpenMP_CXX_FOUND)
[cmake] -- Configuring done
[cmake] -- Generating done

复现Bug的步骤?

建议的解决方案

pyQPanda

基本信息

  • pyQPanda 版本
  • Python 版本
  • 操作系统

Bug是什么?

复现Bug的步骤?

建议的解决方案

VQNet一维及以上的var类型变量Back()的问题

Issue description问题描述

依然是一维及以上的var类型变量(如:a = qop_pmeasure()),如果定义并调用

def soft_max(a):
    softmax = []
    softmax_total = 0
    for i in range(10):
         softmax_total = softmax_total + vexp(a[i])
    for i in range(10):
             softmax.append(vexp(a[i]))
        return softmax

则在后续eval(cost, True)时可以正确输出,但back(cost, grad)时grad无法得到正确的值(空集)。
如果定义并调用

def soft_max(a):
    softmax_total = 0
    for i in range(10):
        softmax_total += vexp(a[i])
return vexp(a)/softmax_total

则可以正确得到eval(cost, True)和back(cost, grad)。
怀疑一维及以上的var类型变量不能依次取出单个分量并放在列表中,需要整体作为自变量(但softmax_total += vexp(a[i])可以使用)

cannot support M1 arm64

pyQPanda

基本信息

  • QPanda 版本:cannot get the right version
  • 操作系统:Mac os Ventura

Bug是什么?

ERROR: Could not find a version that satisfies the requirement pyqpanda (from versions: none)
ERROR: No matching distribution found for pyqpanda

复现Bug的步骤?

pip install pyqpanda

建议的解决方案

Win10+VS2022+CMake3.26编译失败

QPanda

基本信息

  • QPanda 版本:2.1.16
  • 操作系统:Win10

Bug是什么?

在VS2022下无法编译,提示找不到系统库的一些内容。
其中一条报错信息:(直接复制的VS的报错)
Severity Code Description Project File Line Suppression State
Error G4BAEFBA8 'condition_variable' in namespace 'std' does not name a type D:\DevPack\QPanda-2\build\x64-Release\QPanda-2 D:\DevPack\QPanda-2\ThirdParty\antlr4\runtime\src\support\CPPUtils.h 69

点开源文件,所有的#include #include 之类的都会标红

复现Bug的步骤?

建议的解决方案

VS2022中没有CMAKE选项卡了,取而代之的是Build(没记错的话是《生成》)选项卡。这个选项卡里有BuildAll和Install。我的理解是先Build再Install,但是在Build这一步失败了。按照我的理解,iostream之类的东西不用写进CMakeLists.txt中。希望能给出一个解决方案,感谢。

无法安装

pyQPanda

基本信息

  • pyQPanda 版本:3.7.0
  • Python 版本:3.8.3 32-bit
  • 操作系统:win10

Bug是什么?

无法安装

复现Bug的步骤?

将pyqpanda放在site-packages后报错

源码编译,pyqpanda提示QCloud模块找不到

QPanda

基本信息

  • QPanda 版本:2
  • 操作系统:Linux

Bug是什么?

源码编译,pyqpanda提示QCloud模块找不到

复现Bug的步骤?

  1. github获取代码
  2. 编译pyqpanda (Python3.11.4 + CURL 8.2.0)
    Linux Python 3.11.4 + curl 8.20
    build.sh 采用参数
    -DUSE_PYQPANDA=ON -DUSE_OPENSSL=ON -DUSE_CURL=ON

编译完成后 build/ 下 make install,然后 pyQPanda/ 下 python setup.py install

  1. python使用QCloud
    运行错误
/usr/local/lib/python3.11/site-packages/pyqpanda-3.7.17-py3.11.egg/pyqpanda/__init__.py:26: UserWarning: No module named QCloud
  warnings.warn("No module named QCloud")

建议的解决方案

NameError: name 'Shor_factorization' is not defined

pyQPanda

基本信息

  • pyQPanda 版本: 3.7.2
  • Python 版本:3.6.8
  • 操作系统: CentOS Linux release 7.8.2003 (Core)

Bug是什么?

NameError: name 'Shor_factorization' is not defined

复现Bug的步骤?

方式一:
linux系统中,键入pthon3,启动python终端
键入
from pyqpanda import *
Shor_factorization(15)

方式二:
新建py文件
`#!/usr/bin/env python

from pyqpanda import *

if name == "main":

N=15
r = Shor_factorization(N)
print(r)
`
运行py文件

建议的解决方案

draw_qprog(prog) 导致程序直接挂掉

QPanda

基本信息

  • QPanda 版本
  • 操作系统

Bug是什么?

复现Bug的步骤?

建议的解决方案

pyQPanda

基本信息

  • pyQPanda 版本
  • Python 版本:3.7.6
  • 操作系统:Windows

Bug是什么?

draw_qprog(prog) 导致程序死掉。多次尝试能够看到内存不足的提示。

复现Bug的步骤?

from pyqpanda import *
# init(QMachineType.CPU)
prog = QProg()
draw_qprog(prog)

建议的解决方案

希望能在 ChemiQ::prepareInitialState 中引入不同 Transform 下的行为

开发者好呀 😃

新功能的预期行为是什么?

在当前的程序中,ChemiQ::prepareInitialState 所使用的初始化 Hartree-Fock 波函数的方法是对于 n 个占据的电子,在对应的 (前) n 个量子比特中引入 X gate。这个做法的前提应该是对于每个 Fermion 产生算符,其 Pauli 表示的 X gate 或 Y gate 作用在 (前) n 个量子比特。这对于 Jordan-Wigner Transform 是正确的。

但若对于 Parity 或 Bravyi-Kiteav Transform,譬如对于 LiH/STO-3G (基组数 6,需 12 个量子比特),对前 4 个占据电子,构造 Hartree-Fock 初态时应该只需要在第 0, 2 个量子比特上作用 X gate。我想这样做可以保证若对 UCC 拟设,参数使用零初猜时,能够复现 Hartree-Fock 能量。

这个问题应该不是 bug,因为大概在 UCC 的变分下还是能给出正确的结果;只是在零初猜时,有可能因为偏离 Hartree-Fock 态较远而增加迭代优化次数。所以就 label 了 enhancement 哈。

VQNet一维及以上的var类型变量Eval()的问题

Issue description问题描述

一维及以上的var类型变量(如:a = var(np.random.random(3)))的某一分量不能利用eval()函数转化为数值(程序跳出,不报错,确切说a的所有分量只可以共运行一次),但可以整体转化。
不过可以在线路和部分函数中作为a的第3个分量使用a[2]。
如线路中的theta[i][j]和后续处理中的qop_pmeasure()[0] + qop_pmeasure()[1] + qop_pmeasure()[2]。
但如果直接定义b = a[2]或 b = 1 + a[2]等简单函数,eval后也会跳出

Reproducible example code示例代码

eval(a[2], True) √ [[0.3]]

eval(a[1], True)  [[0.1]]
eval(a[2], True) × 

eval(a, True) √ [[0.1], [0.2], [0.3]]

eval(sum(a), True) √ [[0.6]]

eval(a ,True)[2] √ [0.3]

eval(b, True) ×

Parameter type mismatch

Document reference

https://qpanda-tutorial.readthedocs.io/zh/latest/QCircuitInfo.html

Relevant source code

bool QPanda::isMatchTopology(const QGate& gate, const std::vector<std::vector<double>>& vecTopoSt)

Problem

In the document referred to above, the topology of the device is created as a vector of vector of int called "qubits_topology". However, the relevant function is expecting a vector of vector of double. Is it necessary to have a vector of vector of double as an adjacency matrix for the topology?

Compile with cuda in Ubuntu

QPanda

基本信息

  • QPanda 版本:v2.1.16
  • 操作系统:Ubuntu 22.04LTS

Bug是什么?

Build from source, error occured like below.

'''
/home/**/QPanda-2/include/Core/VirtualQuantumProcessor/GPUGates/GPUGatesWrapper.cuh(16): error: qualified name is not allowed
std::shared_ptr m_norm_fun;
^

/home/**/QPanda-2/include/Core/VirtualQuantumProcessor/GPUGates/GPUGatesWrapper.cuh(16): error: this declaration has no storage class or type specifier
std::shared_ptr m_norm_fun;
^

/home/**/QPanda-2/include/Core/VirtualQuantumProcessor/GPUGates/GPUGatesWrapper.cuh(16): error: expected a ";"
std::shared_ptr m_norm_fun;
^
'''

复现Bug的步骤?

'''
cmake -DFIND_CUDA=ON -DUSE_PYQPANDA=ON ..
sudo make install -j12
'''

GPU details: '| NVIDIA-SMI 525.89.02 Driver Version: 525.89.02 CUDA Version: 12.0 |'
dual-3090

尝试使用 shor 分解大整数

新功能的预期行为是什么?

尝试使用 shor 分解大整数,但发现传参为 int 参数,重载了吗,建议支持高精度

python上使用pyQPanda程序跳出,无报错

Issue description问题描述

代码在函数naturedqn(qubit_num, depth, epsilon)loss_c = eval(loss_v, True)行附近跳出,无报错。希望开发者予以指点,谢谢。

Reproducible example code示例代码

from pyqpanda import *
from pyqpanda import exp as vexp
from pyqpanda import log as vlog
from scipy.optimize import minimize
from functools import partial
from matplotlib.pyplot import *
import sklearn.datasets as datasets
import numpy as np
import random
import math
import copy
import time

p = 0
MAX_ROW = 4
MAX_COLUMN = 4

class state:
    def __init__(self, row, column):
        self.r = row
        self.c = column
    def __eq__(self, other):
        if(self.r == other.r and self.c == other.c):
            return True
        else:
            return False
class rstate(state):
    def __init__(self, row, column, reward):
        state.__init__(self, row, column)
        self.rw = reward

terminalset = [state(3, 3)]
abyssset = [state(0, 3), state(1, 1), state(1, 2), state(2, 1), state(2, 2)]

def reward(currentstate):
    if currentstate in terminalset:
        return 1
    elif currentstate in abyssset:
        return -1
    else:
        return 0

def end_or_not(currentstate):
    if (currentstate in terminalset) or (currentstate in abyssset):
        return True
    else:
        return False


def epsilon_greedy(currentstate, epsilon, Q):
    global MAX_ROW
    global MAX_COLUMN
    global rewardset
    choice = 0
    ran = np.random.random()
    if(ran < epsilon):
        choice = np.random.permutation(4)[0]
    else:
        set = []
        for i in range(4):
            set.append({'order': i + 1, 'value': Q[i]})
        np.random.shuffle(set)
        choice = max(set, key=lambda x: x['value'])['order']
    if(choice == 1 and currentstate.r > 0):
        nextstate = state(currentstate.r - 1, currentstate.c)
    elif(choice == 2 and currentstate.c < MAX_COLUMN - 1):
        nextstate = state(currentstate.r, currentstate.c + 1)
    elif(choice == 3 and currentstate.r < MAX_ROW - 1):
        nextstate = state(currentstate.r + 1, currentstate.c)
    elif(choice == 4 and currentstate.c > 0):
        nextstate = state(currentstate.r, currentstate.c - 1) 
    else:
        nextstate = state(currentstate.r, currentstate.c)  
    return nextstate, choice

def new_experience(exp_set, currentstate, nextstate, choice):
    reward_value = reward(nextstate)
    end_or_not_value = end_or_not(nextstate)
    exp_set.append([currentstate, nextstate, reward_value, end_or_not_value, choice])

def sample_from_exp_set(exp_set, num):
    if len(exp_set) <= num:
        sample_set = exp_set
    else:
        sample_set = random.sample(exp_set, num)
    return sample_set

def initial_state(qubitlist, currentstate):
    vqc = VariationalQuantumCircuit()
    bi_str = bin(currentstate.r + 4)[3:] + bin(currentstate.c + 4)[3:] 
    for i in range(len(bi_str)):
        # a = math.pi * int(bi_str[i]) 
        vqc.insert(VariationalQuantumGate_RY(qubitlist[i], var(math.pi * int(bi_str[i]))))
    return vqc

def unitary_local(qubitlist, theta_y, theta_z):
    vqc = VariationalQuantumCircuit()
    for i in range(len(qubitlist)):
        vqc.insert(VariationalQuantumGate_RY(qubitlist[i], theta_y[i])) \
           .insert(VariationalQuantumGate_RZ(qubitlist[i], theta_z[i])) 
    return vqc

def unitary_entangling(qubitlist):
    vqc = VariationalQuantumCircuit()
    for i in range(len(qubitlist) - 1):
        vqc.insert(VariationalQuantumGate_CZ(qubitlist[i], qubitlist[i + 1]))
    vqc.insert(VariationalQuantumGate_CZ(qubitlist[0], qubitlist[len(qubitlist) - 1]))
    return vqc

def classifier_circuit(qubitlist, currentstate, depth, theta_y, theta_z):
    vqc = VariationalQuantumCircuit()
    vqc.insert(initial_state(qubitlist, currentstate)) \
       .insert(unitary_local(qubitlist, theta_y[0], theta_z[0])) 
    for i in range(1, depth):
        vqc.insert(unitary_entangling(qubitlist)) \
           .insert(unitary_local(qubitlist, theta_y[i], theta_z[i]))
    return vqc

def q_meas(vqc, Z_str, machine, qubitlist):
    expection_v = qop(vqc, PauliOperator({Z_str : 1}), machine, qubitlist)
    return expection_v


def Q_2(sample, gamma, qubit_num, depth, theta_y, theta_z, machine):
    if sample[3] == True:
        Q = sample[2]
    else:
        qubitlist_2 = machine.qAlloc_many(qubit_num)
        vqc_2 = classifier_circuit(qubitlist_2, sample[1], depth, theta_y, theta_z)
        expection_set = []
        for i in range(4):
            Z_str = 'Z' + str(i)
            expection_v = q_meas(vqc_2, Z_str, machine, qubitlist_2)
            expection_c = eval(expection_v, True)
            expection_set.append(expection_c[0][0])
        machine.qFree_all(qubitlist_2)
        Q_set = expection_set
        np.random.shuffle(Q_set)
        Q = sample[2] + gamma * max(Q_set)
    return Q

def naturedqn(qubit_num, depth, epsilon):
    count = 1
    gamma = 0.9
    # epsilon = 0.1
    t = 20
    sample_num = 5
    learning_rate = 0.3
    coefficient = 0.9
    period = 5
    exp_set = []
    theta_y = 2 * math.pi * np.random.random((depth, qubit_num))
    theta_z = 2 * math.pi * np.random.random((depth, qubit_num))
    theta_y_2 = theta_y
    theta_z_2 = theta_z
    theta_y_3 = theta_y
    theta_z_3 = theta_z
    machine = init_quantum_machine(QMachineType.CPU_SINGLE_THREAD)
    for i in range(t):
        currentstate = state(0, 0)
        while not ((currentstate in terminalset) or (currentstate in abyssset)):
            theta_y_3_v = var(theta_y_3)
            theta_z_3_v = var(theta_z_3)
            qubitlist_3 = machine.qAlloc_many(qubit_num)
            vqc_3 = classifier_circuit(qubitlist_3, currentstate, depth, theta_y_3_v, theta_z_3_v)
            expection_set = []
            for i in range(4):
                Z_str = 'Z' + str(i)
                expection_v = q_meas(vqc_3, Z_str, machine, qubitlist_3)
                expection_c = eval(expection_v, True)
                expection_set.append(expection_c[0][0])
            machine.qFree_all(qubitlist_3)
            Q_set = expection_set
            nextstate, choice = epsilon_greedy(currentstate, epsilon, Q_set)
            new_experience(exp_set, currentstate, nextstate, choice)
            currentstate = nextstate

            sample_set = sample_from_exp_set(exp_set, sample_num)
            theta_y_v = var(theta_y)
            theta_z_v = var(theta_z)
            theta_y_2_v = var(theta_y_2)
            theta_z_2_v = var(theta_z_2)
            grad = {theta_y_v : np.zeros((depth, qubit_num)), theta_z_v : np.zeros((depth, qubit_num))}
            velocity = {theta_y_v : np.zeros((depth, qubit_num)), theta_z_v : np.zeros((depth, qubit_num))} 

            Q1_set = []
            Q2_set = []
            loss_v = var(0)
            qubitlist = machine.qAlloc_many(qubit_num)

            for j in range(len(sample_set)):
                vqc = classifier_circuit(qubitlist, sample_set[j][0], depth, theta_y_v, theta_z_v)
                Z_str = 'Z' + str(sample_set[j][4] - 1)
                Q1_set.append(q_meas(vqc, Z_str, machine, qubitlist))
                Q2_set.append(Q_2(sample_set[j], gamma, qubit_num, depth, theta_y_2_v, theta_z_2_v, machine))
            for j in range(len(sample_set)):
                loss_v = loss_v + (Q1_set[j] - Q2_set[j]) * (Q1_set[j] - Q2_set[j])
            loss_v = loss_v / len(sample_set)
            loss_c = eval(loss_v, True)
            print(count,':', loss_c)
            count += 1
            back(expression(loss_v), grad)
            # print(grad)

            for variable in grad:
                raw_value = variable.get_value()
                velocity[variable] = - grad[variable] * learning_rate + velocity[variable] * coefficient
                new_value =  raw_value + velocity[variable]
                variable.set_value(new_value)
            theta_y = eval(theta_y_v, True)
            theta_z = eval(theta_z_v, True)
            theta_y_3 = theta_y
            theta_z_3 = theta_z
            del grad
            del velocity
            if i % period == 0:
                theta_y_2 = theta_y
                theta_z_2 = theta_z
            machine.qFree_all(qubitlist)
        print(theta_y)
        print(theta_z)
    destroy_quantum_machine(machine)
    return theta_y, theta_z

def strategy(currentstate, qubit_num, depth, epsilon, theta_y, theta_z):
    machine = init_quantum_machine(QMachineType.CPU_SINGLE_THREAD)
    qubitlist = machine.qAlloc_many(qubit_num)
    machine = init_quantum_machine(QMachineType.CPU_SINGLE_THREAD)
    qubitlist = machine.qAlloc_many(qubit_num)
    vqc = classifier_circuit(qubitlist, currentstate, depth, var(theta_y), var(theta_z))
    expection_set = []
    for i in range(4):
        Z_str = 'Z' + str(i)
        expection_v = q_meas(vqc, Z_str, machine, qubitlist)
        expection_c = eval(expection_v, True)
        expection_set.append(expection_c)
    machine.qFree_all(qubitlist)
    destroy_quantum_machine(machine)
    Q_set = expection_set
    nextstate, choice = epsilon_greedy(currentstate, epsilon, Q_set)
    machine.qFree_all(qubitlist)
    destroy_quantum_machine(machine)
    return nextstate


qubit_num = 4
depth = 8
epsilon = 0.1
theta_y, theta_z = naturedqn(qubit_num, depth, epsilon)
test_state_set = [state(0,0), state(1,0), state(2,0), state(3,0), state(3,1), state(3,2), state(1,3)]
for i in range(len(test_state_set)):
    nextstate = strategy(test_state_set[i], qubit_num, depth, epsilon, theta_y, theta_z)
    print([test_state_set[i].r, test_state_set[i].c], ':', [nextstate.r, nextstate.c])


无法在UTF-8环境下正常使用。

QPanda

基本信息

  • QPanda 版本:QPanda 2.0
  • 操作系统:Edition:Windows 10 Education,Version:1909

Bug是什么?

QPanda无法在系统编码为UTF-8时编译,
编译失败时输出.txt
编译失败时错误列表

在GBK环境下编译成功后,也不能在UTF-8下正常打开。
正常编译后打开警告

复现Bug的步骤?

依次打开 Control Panel->Clock and Region->Region->Administrative->Language for non-Unicode Programs->Change system locale,将Current system locale更改为English (United States)并勾选Beta: Use Unicode UTF-8 for worldwild support.

建议的解决方案

没有,但在将Current system locale设置为Chinese (Simplified,China)并不要勾选Beta: Use Unicode UTF-8 for worldwild support时可正常编译及打开。

输出结果地位在前高位在后不太符合阅读逻辑

通常输出(如qiskit)都是将低位放在后面,高位放在前面。这样是符合阅读逻辑的。比如下面的测试代码可以看到输出是{'10': 1000},然而我们自然的理解应该是预期得到十进制数“1”(预期'01')。不知道这是不是你们有意设计成这样?

import pyqpanda.pyQPanda as pq
from pyqpanda import *
init(QMachineType.CPU)
q= qAlloc_many(2)
c = cAlloc_many(2)
prog = QProg()
prog.insert( X(q[0]) )
prog.insert(Measure(q[0], c[0]))
prog.insert(Measure(q[1], c[1]))
pq.draw_qprog(prog)
result = run_with_configuration(prog, cbit_list = c, shots = 1000)
print(result)

为什么你们的CloudMachine在使用的时候一直报错

QPanda

基本信息

  • QPanda 版本
  • 操作系统:Linux

Bug是什么?

我在按照你们的测试用例使用CloudMachine的时候一直报错

复现Bug的步骤?

auto machine = QCloudMachine();
machine.init("api填写自己的“, true);

machine.set_qcloud_api("https://qcloud.originqc.com");

auto qlist = machine.allocateQubits(4);
auto clist = machine.allocateCBits(4);
auto measure_prog = QProg();
measure_prog << HadamardQCircuit(qlist)
    << CZ(qlist[2], qlist[3])
    << Measure(qlist[0], clist[0]);

auto pmeasure_prog = QProg();
pmeasure_prog << HadamardQCircuit(qlist)
    << CZ(qlist[1], qlist[3])
    << RX(qlist[2], PI / 4)
    << RX(qlist[1], PI / 4);

auto result0 = machine.full_amplitude_measure(measure_prog, 100);

建议的解决方案

pyQPanda

基本信息

  • pyQPanda 版本
  • Python 版本
  • 操作系统

Bug是什么?

QCloudMachine.cpp 210 QPanda::QCloudMachine::full_amplitude_measure curl_easy_perform() failed: Couldn't resolve host name
unknown file: error: C++ exception with description "curl_easy_perform() failed: Couldn't resolve host name run error" thrown in the test body.

复现Bug的步骤?

建议的解决方案

var类型析构bug

var类型参数在重定义时会出现问题;
示例代码
auto a = var(3); auto b = var(4); auto c = a + b; c = a + 1; std::cout << eval(c,true) << std::endl;
最后eval(c,true)时会报错

pyqpanda pip installation error

pyQPanda

基本信息

  • pyQPanda 版本:最新3.7.14
  • Python 版本:3.10, 3.9, 3.8
  • 操作系统:Mac OS Monterey 12.5(Apple M1即arm64架构)

Bug是什么?

无法安装。我在尝试使用python3.10的pip install pyqpanda时提示找不到包:

Looking in indexes: https://mirrors.ustc.edu.cn/pypi/web/simple
ERROR: Could not find a version that satisfies the requirement pyqpanda (from versions: none)
ERROR: No matching distribution found for pyqpanda

我怀疑是python版本的原因(因为官网显示pyqpanda不支持py3.10),于是我安装了3.9和3.8的python,但是得到了完全相同的报错。py3.7不支持arm64架构,因此我无法安装尝试。
我又怀疑是pypi镜像源的问题,于是我换用了官方的镜像源pip install pyqpanda -i https://pypi.python.org/simple/并在py3.10, 3.9, 3.8下分别尝试,但是问题仍然没有解决。
似乎pyqpanda包并不存在。但它的确在pypi上。

复现Bug的步骤?

pip install pyqpanda

建议的解决方案

我猜想pyqpanda可能不支持arm64架构,因而pip找不到适合的版本。

AttributeError: module 'pyqpanda' has no attribute 'controlUnitaryPower'

QPanda

基本信息

  • QPanda 版本
  • 操作系统

Bug是什么?

AttributeError: module 'pyqpanda' has no attribute 'controlUnitaryPower'

复现Bug的步骤?

建议的解决方案

pyQPanda

基本信息

  • pyQPanda 版本
  • Python 版本
  • 操作系统

Bug是什么?

复现Bug的步骤?

建议的解决方案

How to set up max Qubit?

测试了一下,最多29个qubit。内存冗余的情况下,如何增加这个数量?

allocateQubits qubitNumber > maxQubit

关于例子中的shorTest的运行出错

QPanda

基本信息

当我在运行https://github.com/OriginQ/QPanda-2/blob/master/pyQPanda/ShorTest.py这个例子时
他首先提醒我没有single_gate_apply_to_all这个方法
查阅源码后我发现在pyqpanda.utils中有这个方法
使用from pyqpanda.utils import *引入包后
运行这个例子它提醒到
Python39\site-packages\pyqpanda\utils.py", line 16, in single_gate_apply_to_all
for q,w in qubit_list:
TypeError: cannot unpack non-iterable pyqpanda.pyQPanda.Qubit object

  • QPanda 版本:pyqpanda 3.7.13
  • 操作系统:python3.9 win11

Bug是什么?

Python39\site-packages\pyqpanda\utils.py", line 16, in single_gate_apply_to_all
for q,w in qubit_list:
TypeError: cannot unpack non-iterable pyqpanda.pyQPanda.Qubit object

复现Bug的步骤?

运行官方例子https://github.com/OriginQ/QPanda-2/blob/master/pyQPanda/ShorTest.py

建议的解决方案

pyQPanda

基本信息

  • pyQPanda 版本:pyqpanda 3.7.13
  • Python 版本:python3.9 win11
  • 操作系统:win11

Bug是什么?

for循环与同时输出两个或者多个值

复现Bug的步骤?

运行官方例子https://github.com/OriginQ/QPanda-2/blob/master/pyQPanda/ShorTest.py

建议的解决方案

...

尝试调用HHL算法

官方文档的关于HHL算法的源程序需要#include <Extensions\QAlg\HHL.h> 但在安装路径下我没有看到HHL.h

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.