加载Tensorflow数据集时,“元组索引必须是整数或切片,而不是str”

问题描述

我正在尝试加载MNIST数据集,但我正在获取

TypeError:元组索引必须是整数或切片,而不是str

这是我的代码

import numpy as np
import tensorflow as tf
import tensorflow_datasets as tfds

mnist_dataset = tfds.load(name='mnist',with_info=True,as_supervised=True)
mnist_train,mnist_test = mnist_dataset['train'],mnist_dataset['test']

此行给我错误

mnist_train,mnist_dataset['test']

解决方法

如果包含 { "data": { "transactions": [ { "referenceNumber": "912349949908","transaction": "Reload","details": { "sourceAccntNickname": "1jkp","sourceAcountNumber": "6*****48","transactionDate": "Feb 08,2018","billerName": "Bill1","billerAccntNumber": "6***98","recurring": false,"amount": 100000 },"status": "failed" },{ "referenceNumber": "01237659123","details": { "sourceAccntNickname": "4jkp","sourceAcountNumber": "7*****48","transactionDate": "Feb 11,"billerName": "Bill4","recurring": true,"frequency": "Monthly","amount": 400000 },"status": "success" },{ "referenceNumber": "012836591828","details": { "sourceAccntNickname": "3jkp","transactionDate": "Feb 10,"billerName": "Bill3","amount": 300000 },"status": "pending" },{ "referenceNumber": "69880129365123","details": { "sourceAccntNickname": "2jkp","transactionDate": "Feb 09,"billerName": "Bill2","amount": 200000 },"status": "failed" } ] } } ,则需要相应地打开包装:

    function descendingComparator(a,b,orderBy) {
  if (b[orderBy] < a[orderBy]) {
    return -1;
  }
  if (b[orderBy] > a[orderBy]) {
    return 1;
  }
  return 0;
}

function getComparator(order,orderBy) {
  return order === 'desc'
    ? (a,b) => descendingComparator(a,orderBy)
    : (a,b) => -descendingComparator(a,orderBy);
}

function stableSort(array,comparator) {
  const stabilizedThis = array.map((el,index) => [el,index]);
  stabilizedThis.sort((a,b) => {
    const order = comparator(a[0],b[0]);
    if (order !== 0) return order;
    return a[1] - b[1];
  });
  return stabilizedThis.map((el) => el[0]);
}

/*  const date = SchedData.data.transactions.map(
  (data) => data.details.transactionDate
); 
console.log('Dates:',date,typeof date); */

const headCells = [
  {
    id: 'transactionDate',numeric: false,disablePadding: true,label: 'PAYMENT DATE',},{ id: 'recurring',disablePadding: false,label: 'SCHEDULE' },{ id: 'frequency',label: 'BILLER' },{
    id: 'sourceAccntNickname',label: 'SOURCE',{ id: 'amount',numeric: true,label: 'AMOUNT' },{ id: 'status',label: 'STATUS' },];

const StyledTableCell = withStyles((theme) => ({
  head: {
    backgroundColor: theme.palette.action.hover,body: {
    fontSize: 14,}))(TableCell);
function EnhancedTableHead(props) {
  const {
    classes,onSelectAllClick,order,orderBy,numSelected,rowCount,onRequestSort,} = props;
  const createSortHandler = (property) => (event) => {
    onRequestSort(event,property);
  };

  return (
    <TableHead>
      <TableRow>
        {headCells.map((headCell) => (
          <StyledTableCell
            key={headCell.id}
            sortDirection={orderBy === headCell.id ? order : false}
          >
            <TableSortLabel
              active={orderBy === headCell.id}
              direction={orderBy === headCell.id ? order : 'asc'}
              onClick={createSortHandler(headCell.id)}
            >
              {headCell.label}
              {orderBy === headCell.id ? (
                <span className={classes.visuallyHidden}>
                  {order === 'desc' ? 'sorted descending' : 'sorted ascending'}
                </span>
              ) : null}
            </TableSortLabel>
          </StyledTableCell>
        ))}
      </TableRow>
    </TableHead>
  );
}

with_info=True是一个包含2个项目的字典和一个mnist_dataset,info = tfds.load(name='mnist',with_info=True,as_supervised=True) 对象的元组:

mnist_dataset