Metadata-Version: 2.4
Name: LetsANN
Version: 0.2.0
Summary: 基于 TensorFlow 的零基础 ANN 库：用简单的 Python 字典就能描述网络。
Author: LetsANN Contributors
License: MIT
Project-URL: Homepage, https://github.com/letsann/letsann
Project-URL: Documentation, https://github.com/letsann/letsann#readme
Project-URL: Issues, https://github.com/letsann/letsann/issues
Keywords: tensorflow,keras,neural network,ann,deep learning,education
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: tensorflow>=2.8
Requires-Dist: numpy>=1.19
Requires-Dist: pandas>=1.2
Requires-Dist: scikit-learn>=1.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file

# LetsANN

**LetsANN** 是一个基于 TensorFlow / Keras 的零基础 ANN 库。  
用最简单的 Python 列表描述网络，像搭积木一样训练模型。

> 需要可视化拖拽界面？请看配套的独立项目 [`letsann-web`](https://github.com/letsann/letsann-web)。

## 安装

```bash
pip install LetsANN
```

要求 Python **3.8 及以上**。

## 最小示例

```python
from letsann import Model, load_dataset

# 用 DataFrame 或 CSV 路径都行，最后一列默认为标签
ds = load_dataset("iris.csv", target="species")

# 用列表描述网络
model = Model([
    {"type": "Input",  "params": {"shape": "4"}},
    {"type": "Dense",  "params": {"units": 16, "activation": "relu"}},
    {"type": "Dense",  "params": {"units": 3,  "activation": "softmax"}},
])

# 和 Keras 一样编译、训练
model.compile(optimizer="adam",
              loss="sparse_categorical_crossentropy",
              metrics=["accuracy"])
model.fit(ds.X_train, ds.y_train,
          validation_data=(ds.X_val, ds.y_val),
          epochs=20, batch_size=16)

print(model.summary())
```

更多示例见 `examples/quickstart.py`。

## 支持的层

`Input`、`Dense`、`Dropout`、`BatchNormalization`、`Flatten`、`Activation`、
`Conv2D`、`MaxPooling2D`。全部在 `letsann/layers.py` 中注册，想扩展就
往 `LAYER_REGISTRY` 里加一条即可。

## 数据集格式

- **CSV / TSV**：默认最后一列为标签；用 `target="col"` 指定其它列。
- **NPZ**：需要包含 `X` 和 `y` 两个数组。

## 发布到 PyPI

```bash
# 1. 安装打包工具
pip install build twine

# 2. 打包（在本目录运行）
python -m build         # 会生成 dist/LetsANN-0.1.0.tar.gz 和 .whl

# 3. 先上传到 TestPyPI 验证
twine upload --repository testpypi dist/*

# 4. 确认没问题后，正式上传 PyPI
twine upload dist/*
```

上传需要在 <https://pypi.org> 先创建账号并生成 API Token，放进
`~/.pypirc` 或设置环境变量 `TWINE_USERNAME=__token__`、
`TWINE_PASSWORD=<你的 token>`。

## 开发

```bash
pip install -e ".[dev]"
pytest
```

## License

MIT
